我在IIS8中使用VS2013。我的应用程序访问不同IP上的服务器以进行登录。我成功地从运行Webstorm的另一个Windows框进行访问。现在我的应用程序在VS2013中运行,我收到此错误:
XMLHttpRequest无法加载http://example.com/Token。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许来源“http://localhost:2757
”。响应的HTTP状态代码为500。
我尝试将以下内容添加到我的网络配置以及IIS Express配置文件中:
的web.config
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>
对ApplicationHost.config
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Powered-By" value="ASP.NET" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
我仍然得到同样的信息。
有没有人对如何解决这个问题有任何想法。另外,如何通过查看Fiddler来设置Access-Control-Allow_Headers?
答案 0 :(得分:0)
我有一个正在运行的web api项目,可以接受所有类型的标头,请求,cors也启用等,可以从任何地方调用。虽然我还没有在IIS服务器上部署我的项目,但到目前为止它在localhost上成功运行了我。
试试这个。可能它会解决你的问题。
我假设你在VS 2013上创建的项目是一个web api项目。
请按以下步骤操作: -
1)在您的web api项目中打开nuget包管理器控制台。
2)键入Install-Package Microsoft.AspNet.WebApi.Cors并安装
3)成功后,键入Update-Package Microsoft.AspNet.WebApi并安装它。
4)检查你的web.config文件是否有以下条目,然后删除/评论 它们。
add name =&#34; Access-Control-Allow-Origin&#34;值=&#34; *&#34;
add name =&#34; Access-Control-Allow-Headers&#34;值=&#34; *&#34;
添加名称=&#34;访问控制 - 允许 - 方法&#34; value =&#34; GET,POST,PUT,DELETE,OPTIONS&#34;
5)现在来到您的控制器文件并导入命名空间。使用System.Web.Http.Cors;
6)现在在控制器级别输入[EnableCors(起源:&#34; &#34;,标题:&#34; &#34;,方法:&#34; * &#34;)]允许控制器接受所有类型的起源,标题和方法。
到目前为止,这对我有用。