2014-05-12 76 views
1

安裝了我的電腦並安裝了所有服務包和修補程序。重新安裝後的CORS問題

但我只是不能讓我的Angular網站與WebApi溝通。當我嘗試驗證用戶名和密碼時,我不斷收到以下消息。

跨域請求被阻止:同源策略不允許讀取遠程資源http://myLocaldeployedSite:89/api/Account/GetUserByPost/。這可以通過將資源移動到相同的域或啓用CORS來解決。

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

我有下面的代碼改變我的代碼(按照brockallen博客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 

在fidd中的響應ler是200 - 確定,但是在Firebug中顯示了上面提到的信息。

這裏也是消息的圖像: enter image description here

,這裏是我的火發現缺陷的響應: enter image description here

但我仍然沒有得到網站連接到我的WebAPI 。

請有人協助。 已經引用了很多StackOverflow中的鏈接,但還沒有成功,所以我希望有人能夠提供幫助。

謝謝。

+0

顯示確切的錯誤,http請求和響應。 – jgauffin

+0

完整的迴應會很有用。由於CORS策略適用於瀏覽器(並非所有的HTTP請求),提琴手請求並不令人驚訝。 –

+1

你是如何在服務器上啓用CORS的? – Dunken

回答

0

好,我設法解決這個問題。因爲我在每次格式化我的PC之前都複製了文件夾,所以我一直在我的文件中保留相同的Web.Config設置。

感謝Stack Overflow和Batterang(Chrome)上的link,我設法解決了這個問題。我從我的web.config中刪除了下面一行,一切都解決了。

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

感謝您的所有幫助和建議。

0

試試這個在您的WebAPI:

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

    // do stuff 

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

我的配置中已經有這行代碼。仍然不想工作 – Gremlin1708

+0

只是改變了我的代碼... – Dunken

+0

好吧,我回來了,我很抱歉地說,這也沒有奏效。 – Gremlin1708