से CORS हेडर में 'पहुंच-नियंत्रण-अनुमति दें-शीर्षकों' मैं दो वी.एस. परियोजनाओं हैं: एक उजागर MVC5 नियंत्रकों, अन्य एक कोणीय ग्राहक जा रहा है। मैं कोणीय क्लाइंट नियंत्रकों से पूछताछ करने में सक्षम होना चाहता हूँ। मैं कई धागे पढ़ सकते हैं और निम्नलिखित की कोशिश की:गुम टोकन 'पहुंच-नियंत्रण-अनुमति देते हैं-हेडर' CORS preflight चैनल
मैं सर्वर के वेब config में इस कहा:
<system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> <system.webServer>
मैं बनाया है और नियंत्रक की कार्रवाई पर निम्न फ़िल्टर प्रयोग किया है:
public class AllowCrossSiteJsonAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*"); base.OnActionExecuting(filterContext); } }
कोणीय ग्राहक में, मैंने निम्नलिखित इंटरसेप्टर बनाया:
app.factory("CORSInterceptor", [ function() { return { request: function(config) { config.headers["Access-Control-Allow-Origin"] = "*"; config.headers["Access-Control-Allow-Methods"] = "GET, POST, OPTIONS"; config.headers["Access-Control-Allow-Headers"] = "Content-Type"; config.headers["Access-Control-Request-Headers"] = "X-Requested-With, accept, content-type"; return config; } }; } ]); app.config(["$httpProvider", function ($httpProvider) { $httpProvider.interceptors.push("CORSInterceptor"); }]);
Firebug के अनुसार, इस निम्नलिखित अनुरोध में परिणाम:
OPTIONS //Login/Connect HTTP/1.1
Host: localhost:49815
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Origin: http://localhost:50739
Access-Control-Request-Method: POST
Access-Control-Request-Headers: access-control-allow-headers,access-control-allow-origin,content-type
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
और निम्नलिखित प्रतिक्रिया:
HTTP/1.1 200 OK
Allow: OPTIONS, TRACE, GET, HEAD, POST
Server: Microsoft-IIS/10.0
Public: OPTIONS, TRACE, GET, HEAD, POST
X-SourceFiles: =?UTF-8?B?RDpcVEZTXElVV2ViXEdhcE5ldFNlcnZlclxBU1BTZXJ2aWNlc1xMb2dpblxDb25uZWN0?=
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: *
Access-Control-Request-Headers: X-Requested-With, accept, content-type
Date: Tue, 01 Sep 2015 13:05:23 GMT
Content-Length: 0
और फिर भी, फ़ायरफ़ॉक्स ब्लॉक निम्न संदेश के साथ अनुरोध :
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:49815//Login/Connect. (Reason: missing token 'access-control-allow-headers' in CORS header 'Access-Control-Allow-Headers' from CORS preflight channel).
की [Cors पहुंच-नियंत्रण-अनुमति दें-हेडर वाइल्डकार्ड अनदेखा किया जा रहा?] (Http संभव डुप्लिकेट://stackoverflow.com/questions/13146892/cors-access-control-allow-headers-wildcard-being-ignored) – sideshowbarker