2012-10-03 129 views
4

我的代碼是這樣使用REST API

$.ajax({ 
    cache: false, 
    url: <Web Service URL>, 
    data: "{}", 
    type: 'GET', 
    crossDomain: true, 
    dataType: 'json', 
    success: function() { alert("Success"); }, 
    error: function() { alert('Failed!'); }, 
}); 

我試圖使用jQuery訪問來自客戶端的REST API,但它給錯誤,如 XMLHttpRequest cannot load <Web Service URL>. Origin null is not allowed by Access-Control-Allow-Origin.

所以有人可以幫我解決這個錯誤..?

+1

試試'JSONP'。 –

+0

嗨Pushpesh,我也嘗試過JSONP,但它給出了相同的錯誤 –

+0

你可以給我的網址,以便我可以試試看。您上面給出的網址無效,所以我無法驗證。 –

回答

1

Ajax請求必須是服務於網頁的服務器。

你可以做的是在你的網站上有一個代理服務器,用於將請求從瀏覽器轉發到你希望打電話的網站。

http://your.site.here/proxy/bentley/LearnService/Learnservice.svc/REST/ ...

所以,如果你碰巧使用Apache例如,你可以通過添加類似下面的httpd.conf配置反向代理:

ProxyPassReverse /proxy/bentley http://khara37793punl.bentley.com/ 
2

谷歌之後,我開始知道,用戶必須在phonegap/hybrid應用程序的config.xml中添加「」。