重新安装后CORS问题

时间:2014-05-12 19:35:17

标签: c# asp.net-web-api windows-7-x64

安装了我的电脑并安装了所有服务包和补丁。

但我无法让我的Angular网站与WebApi进行沟通。当我尝试验证用户名和密码时,我不断收到以下消息。

阻止跨源请求:同源策略禁止在http://myLocaldeployedSite:89/api/Account/GetUserByPost/读取远程资源。这可以通过将资源移动到同一域或启用CORS来解决。

http://myLocaldeployedSite:89/是部署到IIS中的WebApi。

我的代码中有以下代码更改(根据brockallen blog http://brockallen.com/2012/10/18/cors-iis-and-webdav/):

WebApi(web.config):

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule" />
</modules>
<handlers>
  <remove name="WebDAV" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <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>

我正在制作的电话的标题看起来像这样......

    Host: localhost:89

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.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:2825`

Access-Control-Request-Method: POST

Access-Control-Request-Headers: content-type

Connection: keep-alive

Pragma: no-cache

Cache-Control: no-cache

fiddler中的响应是200 - OK但是在Firebug中它会显示上面提到的消息。

这里也是消息的图像: enter image description here

以下是我在Fire Bug中发现的回复: enter image description here

但我仍然没有让网站连接到我的WebApi。

请有人帮忙。 已经在StackOverflow中引用了相当多的链接但尚未成功,所以我希望有人可以提供协助。

谢谢。

2 个答案:

答案 0 :(得分:0)

在WebAPI中尝试此操作:

public static class WebApiConfig
{
  public static void Register(HttpConfiguration config)
  {

    // do stuff

    var cors = new EnableCorsAttribute("*", "*", "*") {SupportsCredentials = true};
    config.EnableCors(cors);
  }
}

答案 1 :(得分:0)

好的,我设法解决了。因为我在格式化PC之前每次都复制了文件夹,所以我在文件中保持了相同的Web.Config设置。

感谢Stack Overflow和Batterang(Chrome)上的link,我设法解决了这个问题。我从web.config中删除了以下行,所有内容都已解决。

<!--<add name="Access-Control-Allow-Origin" value="*" />-->

感谢所有的帮助和建议。