2017-06-30 82 views
1

我有其他應用程序與Angular2和ASP MVC休息服務器,我有一個通信問題。 當我送東西,我得到這個錯誤:ASP MVC與Angular2的Web api - Http標題訪問控制

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:4200 ' is therefore not allowed access.

當我將訪問控制允許來源要求,我得到這個錯誤:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:4200 ' is therefore not allowed access. The response had HTTP status code 404.

這裏是我的代碼:

let headers = new Headers({ 'Access-Control-Allow-Origin': '*' }) 
    this.http.get("http://localhost/App/Users", { withCredentials: true, headers: headers }) 
     .subscribe(response => { 
     console.log("A"); 
     }, error => { 
     console.log(error); 
     }); 

在web.config中啓用了Windows身份驗證。 問題在哪裏?

+0

你如何啓用網絡API中的Cors? – hasan

回答

2

這裏的問題似乎是CORS。您正在使用本地主機時,您的angular和WebAPI正在使用不同的端口。 (看起來他們是兩個不同的項目)。 爲了解決這個問題,你可以使用「Install-Package Microsoft.AspNet.WebApi.Cors」來安裝nuget包,然後在你的WebApiConfig文件中你可以簡單地說「config.EnableCors()」。現在,你暴露在角度部分的API,必須告訴CORS應該在那裏使用。所以你可以把屬性放在你的控制器中,提到起源,標題和方法。它應該在那之後正常工作。 欲瞭解更多參考,你可以檢查這個鏈接, https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api