मैं रीस्टफुल एपीआई का उपयोग कर कुछ सेवा के लिए एक वेब एप्लिकेशन लिख रहा हूं। एपीआई https://api.example पर और https://app.example पर ऐप उपलब्ध है। सीओआरएस का उपयोग कर सरल जीईटी अनुरोध क्रोम और फ़ायरफ़ॉक्स में ठीक काम कर रहे हैं। कुछ विधि POST के माध्यम से डेटा स्वीकार करती हैं और स्थान शीर्षलेख में नई यूरी के साथ 303 कोड लौटाती हैं।क्यों ब्राउज़र XMLHTTPRequest और CORS का उपयोग करके रीडायरेक्ट का पालन नहीं करता है?
Preflight विकल्प अनुरोध ठीक है:
Request Method:OPTIONS
Status Code:200 OK
अनुरोध हेडर
Accept:*/*
Accept-Charset:UTF-8,*;q=0.5
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,ru;q=0.6
Access-Control-Request-Headers:origin, authorization, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
DNT:1
Host:api.example
Origin:https://app.example
Referer:https://app.example/app/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.32 (KHTML, like Gecko) Chrome/27.0.1425.0 Safari/537.32 SUSE/27.0.1425.0
प्रतिक्रिया हेडर
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Authorization, Content-Type
Access-Control-Allow-Methods:GET,POST,PUT,DELETE,HEAD,OPTIONS
Access-Control-Allow-Origin:https://app.example
Access-Control-Expose-Headers:*
Access-Control-Max-Age:3628800
Connection:keep-alive
Content-Length:0
Date:Sun, 05 May 2013 15:22:50 GMT
Server:nginx/1.2.5
तब वास्तविक अनुरोध सिर्फ 303 प्राप्त करने के बाद रोक:
Request URL:https://api.example
Request Method:POST
Status Code:HTTP/1.1 303 See Other
प्रतिक्रिया हेडर:
Server:nginx/1.2.5
Location:https://api.example/some_url
Date:Sun, 05 May 2013 15:27:49 GMT
Content-Type:application/json
Content-Length:0
Connection:keep-alive
Access-Control-Max-Age:3628800
Access-Control-Expose-Headers:*
Access-Control-Allow-Origin:https://app.example
Access-Control-Allow-Methods:GET,POST,PUT,DELETE,HEAD,OPTIONS
Access-Control-Allow-Headers:Authorization, Content-Type
Access-Control-Allow-Credentials:true
आरएफसी उपयोगकर्ता एजेंट द्वारा रीडायरेक्ट का पालन करना चाहिए, लेकिन क्रोम और एफएफ लगता अपेक्षा के अनुरूप व्यवहार नहीं करता है। क्या यह ब्राउज़र का बग है या मैं कुछ गलत कर रहा हूं?
अद्यतन: यदि मैं क्रोमियम शुरू करता हूं - डिस्प्ले-वेब-सुरक्षा सब ठीक काम करता है।
'असली' अनुरोध (सीओआरएस प्री-फ्लाइट नहीं) के लिए आपके अनुरोध शीर्षलेख क्या हैं? मुझे एक बहुत ही समस्या का सामना करना पड़ रहा है। क्या आपने इसे किसी भी मौके से हल किया है? – vrutberg
ऐसा लगता है कि क्रोमियम में इस बग रिपोर्ट से संबंधित हो सकता है https://code.google.com/p/chromium/issues/detail?id=237490 – vrutberg
@vrutberg हाँ यह बिल्कुल वही दिखता है। इसके अलावा यह * कभी-कभी * काम करता है। उदाहरण के लिए, एक एमएसडीएन परीक्षण http://samples.msdn.microsoft.com/ietestcenter/CORS/CORS_014.htm क्रोम और एफएफ दोनों में पास होता है। मेरे एक दोस्त ने बिल्कुल वही कोड लिया और अपने सर्वर पर रख दिया और यह काम नहीं करता! http://twinspect.net/cors.htm – galadog