2015-05-06 26 views
0

我試圖使用AngularJS我的本地機器叫我WCF REST服務(非PROD環境中託管)調用WCF REST服務。但每次我得到使用AngularJs給錯誤

SEC7119:XMLHttpRequest for http://XXX/XXX/Web/rest/GeDetails需要CORS預檢。

SCRIPT7002:XMLHttpRequest的:網絡錯誤0X80070005,訪問被拒絕。

有什麼辦法可以使用AngularJS來使用WCF REST服務嗎?

謝謝!

+0

看起來您有CORS問題,您不能從託管在其他服務器上的站點調用Web服務器。也許,如果您向我們顯示請求和答案,我們可以幫助您瞭解請求中缺少哪些信息。 – Rafa

回答

0

使用下面的代碼在我服務的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(); 
      } 
     } 
1

您有一個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。但實際上對我來說就是這樣。

我希望這有助於

+0

謝謝,但我面臨着訪問WCF REST服務的問題,而不是與Web API。 – user1660592

+0

@ user1660592我更新了答案:) – dobleUber