本文介绍了AngularJS Allow-Origin到WebApi2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将我的API托管在单独的域中.我已将我的auth-interceptor配置为与承载成角度的令牌:
I want to host my API on a separate domain. I have configured my auth-interceptor for token in angular with a bearer:
config.headers.Authorization = 'Bearer ' + sessionStorage.getItem('token');
在我的WebApi2中,我已经用cors配置了WebApiConfig.
In my My WebApi2 I have configured the WebApiConfig with cors.
var cors = new EnableCorsAttribute("http://mydomain.com", "*", "*");
config.EnableCors(cors);
在API的web.config中,我还包括:
And in web.config of the API I also included:
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
由于来源不被允许,我仍然无法访问该api.我可以在auth-interceptor的标头中添加更多内容吗,还是需要做些什么?
I still can´t access the api due to origin not allowed. Can I add something more in my header of the auth-interceptor in angular or what do I need to do?
推荐答案
在API的web.config中,包括以下代码:
In web.config of API, include the below mentioned code:
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
</customHeaders>
</httpProtocol>
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="WebDAV" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
我希望这会有所帮助.
谢谢.
这篇关于AngularJS Allow-Origin到WebApi2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!