我試圖使用AngularJS我的本地機器叫我WCF REST服務(非PROD環境中託管)調用WCF REST服務。但每次我得到使用AngularJs給錯誤
SEC7119:XMLHttpRequest for http://XXX/XXX/Web/rest/GeDetails需要CORS預檢。
和
SCRIPT7002:XMLHttpRequest的:網絡錯誤0X80070005,訪問被拒絕。
有什麼辦法可以使用AngularJS來使用WCF REST服務嗎?
謝謝!
我試圖使用AngularJS我的本地機器叫我WCF REST服務(非PROD環境中託管)調用WCF REST服務。但每次我得到使用AngularJs給錯誤
SEC7119:XMLHttpRequest for http://XXX/XXX/Web/rest/GeDetails需要CORS預檢。
和
SCRIPT7002:XMLHttpRequest的:網絡錯誤0X80070005,訪問被拒絕。
有什麼辦法可以使用AngularJS來使用WCF REST服務嗎?
謝謝!
使用下面的代碼在我服務的Global.asax頁及其工作完美。
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "POST, PUT, DELETE");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
}
您有一個CORS錯誤。
您必須啓用您的API CORS - >enabling-cross-origin-requests-in-web-api
對WCF休息嘗試this
,然後在angular.config你必須:
angular.module('myapp',[...])
.config(function ($stateProvider, $urlRouterProvider, $httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
// ...
})
顯然,在最新版本的AngularJS你不需要添加任何東西來製作它work。但實際上對我來說就是這樣。
我希望這有助於
謝謝,但我面臨着訪問WCF REST服務的問題,而不是與Web API。 – user1660592
@ user1660592我更新了答案:) – dobleUber
看起來您有CORS問題,您不能從託管在其他服務器上的站點調用Web服務器。也許,如果您向我們顯示請求和答案,我們可以幫助您瞭解請求中缺少哪些信息。 – Rafa