2014-05-11 50 views
0

我有一個應用程序託管與域www.abc.com。這實際上是WebApi應用程序。我想用asp.net mvc構建一個單獨的UI應用程序,其域名是www.xyz.com。 UI應用程序消費Angular,HTML5和其他Web技術。在這裏我真的需要執行GET,PUT,POST,DELETE對www.abc.com。不幸的是jsonp的限制,我喜歡選擇CORS(HTML5 Cors),但是我無法將json對象傳遞給CORS調用。在我的問題場景中使用angularJs調用跨域調用(GET,PUT,POST,DELETE)的最佳方法是什麼?我應該在IIS中更改以處理CORS請求。如何使用角度調用跨域ajax調用/ jquery

+0

你覺得我的回答有用嗎?請接受並注意,如果有的話 –

回答

2

添加下面的web.config中的WebAPI

​​

和角度,設置以下配置選項$ HTTP

header("Access-Control-Allow-Credentials: true"); 
header("Access-Control-Allow-Origin: http://url.com:8080"); 
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS"); 
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization"); 

還要檢查:this link

+0

快速注意說域名已更改。如果你想檢查上面提到的鏈接,請參閱http://samurails.com/tutorial/cors-with-angular-js-and-sinatra/ –

0

要啓用跨域ajax調用您可以在發佈以下內容時將crossdomain.config放置在asp.net web api根文件夾中。

<?xml version="1.0"?> 
<cross-domain-policy> 
<allow-access-from domain="*"/> 
</cross-domain-policy> 
+1

OP詢問CORS而不是JSONP。無論如何,您的解決方案只能用於GET請求。 –

+0

@ Ray Nicholus我更新了我的答案。另一方面,我爲移動客戶端實現了一個使用asp.net web api的web服務,我需要管理/啓用跨域ajax調用。因此,我在發佈時將crossdomain.config與上面的內容放在應用程序根文件夾中,它使我們能夠訪問Web API端點。因此,我不明白你爲什麼低估了它。另外,它應該適用於get和post。你應該參考我的答案我錯了。這樣我才能糾正自己。 –

+1

JSONP只適用於GET請求。 –