SPRINGBOOT يحل المجال المتقاطع AJAX للرجوع إليه. المحتوى المحدد كما يلي
1. الطريقة الأولى
1. اكتب تكوينًا يدعم طلبات المجال المتقاطع
استيراد org.springframework.context.annotation.configuration ؛ استيراد org.springframework.web.servlet.config.annotation.corsRegistry ؛ استيراد org.springframework.web.servlet.config.annotation.webmvcconfigurer Levin * @ttime 2017-07-13 */ @ @configurationpublic corsconfig يمتد webmvcConfigureRadapter {static final string Origins [] = new string [] {"get" ، "post" ، "put" ، "delete"} ؛ Override public void addCorsMappings (سجل corsregistry) {registry.addmapping ("/**"). المسموحات ("*"). }}2. واجهة طلب HTTP
RestControllerPublic Class HelloconTroller {autowired HelloService HelloService ؛ getMapping (value = "/test" ، produces = mediaType.application_json_utf8_value) Query public Query () {return "hello" ؛ }}2. الطريقة الثانية (الموصى بها)
ملاحظة: النوع الأول لديه مشكلة. عندما يرمي الخادم 500 ، لا تزال هناك مشكلة في المجال.
@springbootapplication@componentscan@enableScoveryClientPublic managementapplication {public static void main (string [] args) {springapplication.run (managementapplication.class ، args) ؛ } corsconfiguration الخاص buildConfig () {corsconfiguration corsconfiguration = new corsconfiguration () ؛ corsconfiguration.addallowedorigin ("*") ؛ corsconfiguration.AddallowedHeader ("*") ؛ corsconfiguration.addallowedMethod ("*") ؛ corsconfiguration.addexposedHeader (httpheaderconstant.x_total_count) ؛ إرجاع تكوين corsconment ؛ } / ** * مرشح المدى المتقاطع * * @REGAN * / bean public corsfilter corsfilter () {urlBasedCorsConfigurationsource source = new urlbasedcorsconfigurationsource () ؛ source.registerCorsConfiguration ("/**" ، buildConfig ()) ؛ // 4 إرجاع corsfilter جديد (المصدر) ؛ }}2. index.html
<! doctype html> <html> <head> <meta charset = "utf-8"> <title> طلب المتقاطع </title> <script src = "https://cdn.bootcss.com/jquery/1.1.2/jquery.min.js $ ("button"). انقر فوق (function () {$ .ajax ({url: "http: // localhost: 8080/test" ، success: function (result) {$ ("#p1"). المحتوى </button> </body> </html>3. الطريقة الثالثة هي كتابة مرشح مرشح
package com.cci.market.common.filter ؛ استيراد java.io.ioException ؛ استيراد javax.servlet.filter ؛ استيراد javax.servlet.filterchain ؛ استيراد javax.servlet.filterConfig ؛ استيراد javax.servletexception ؛ استيراد javax.servlet.servlest.servlest javax.servlet.servletResponse ؛ استيراد javax.servlet.http.httpservletresponse ؛ استيراد org.springframework.stereotypee.component ؛/** * تعامل مع مشكلات cross-domain * author mr.zheng * @date 2016/08/08/08 init (filterConfig filterConfig) يلقي servletexception {} override public void dofilter (servletRequest req ، servletResponse res ، سلسلة filterchain) رمي ioException ، servleTexception {httpservletrespons استجابة. استجابة. استجابة. استجابة. Chain.dofilter (REQ ، Res) ؛ } Override Public Void Dorner () {// TODO Method method method}}}4. تكوين Nginx عبر المجال
Nginx المتقاطع هو أيضا بسيطة نسبيا ، فقط أضف التكوين التالي.
الموقع/{proxy_pass http: // localhost: 8080 ؛ if ($ request_method = 'Options') {add_header 'Access-Control-allow-Origin' '*' ؛ add_header 'Access-Control-allow-methods' 'Get ، Post ، Options' ؛ add_header 'Access-Control-allow-headers' 'DNT ، x-customheader ، keep-alive ، user-user ، x-requested-with ، if-modive-since ، cache-control ، type content ، ring content ، range ، token' ؛ add_header 'Access-Control-Max-age' 1728000 ؛ Add_header "Type-type" "type"/Plain ؛ charset = utf-8 '؛ add_header 'طول المحتوى' 0 ؛ العودة 204 ؛ } if ($ request_method = 'post') {add_header 'Access-Control-allow-arigin' '*' ؛ add_header 'Access-Control-allow-methods' 'Get ، Post ، Options' ؛ add_header 'Access-Control-allow-headers' 'DNT ، x-customheader ، keep-alive ، user-user ، x-requested-with ، if-modive-since ، cache-control ، type content ، ring content ، range ، token' ؛ add_header 'Access-control-headers' 'DNT ، x-customheader ، keep-alive ، user-user ، x-requested-with ، if modive-since ، cache-control ، نوع المحتوى ، نطاق المحتوى ، المدى ، الرمز المميز' ؛ } if ($ request_method = 'get') {add_header 'Access-Control-allow-Origin' '*' ؛ add_header 'Access-Control-allow-methods' 'Get ، Post ، Options' ؛ add_header 'Access-Control-allow-headers' 'DNT ، x-customheader ، keep-alive ، user-user ، x-requested-with ، if-modive-since ، cache-control ، type content ، ring content ، range ، token' ؛ add_header 'Access-control-headers' 'DNT ، x-customheader ، keep-alive ، user-user ، x-requested-with ، if modive-since ، cache-control ، نوع المحتوى ، نطاق المحتوى ، المدى ، الرمز المميز' ؛ }}حيث: add_header 'Access-Control-headers' تأكد من إضافة الرأس الذي أحضرته عند طلبك. على سبيل المثال ، يتم إرسال "الرمز المميز" في هذا المثال بالفعل من الواجهة الأمامية إلى النهاية الخلفية. لا يهم إذا كنت لا تستطيع تذكر ذلك ، فإن مصحح تصحيح المستعرض سيكون له تعليمات مفصلة.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.