2014-02-18 63 views
0

林試圖使請求到遠程休息(put方法)API的XmlHttpRequest跨域

var xhReq = new XMLHttpRequest(); 
xhReq.open("PUT", "http://api-easybib.apigee.com/2.0/rest/cite", true); 
xhReq.setRequestHeader('Content-Type', 'application/json'); 
var jsonString = "{...}"; 

xhReq.send(JSON.stringify(jsonString)); 

var serverResponse = xhReq.responseText; 

它失敗

否「訪問控制允許來源」標題

雖然我成功通過休息客戶端瀏覽器插件撥打電話。

我在想什麼?

回答

0

由於安全原因,所有的瀏覽器都不會接受來自您的網站的AJAX跨域請求。

爲了讓瀏覽器接受ajax跨源請求,服務器代碼必須設置頭部「Access-Control-Allow-Origin」來響應以通知瀏覽器它接受ajax跨源請求。

在瀏覽器插件(例如:chrome應用程序)中,chrome允許開發人員配置向跨源發送請求。因此,您可以在REST客戶端插件中發送跨域請求。 (http://developer.chrome.com/apps/app_external.html#manifest

0

添加訪問控制允許來源您的服務器上,或使用JSONP (見What is JSONP all about?

+0

你的意思是到其他服務器? – itamar

+0

在REST服務器上可以添加Access-Control-Allow-Origin標頭。 – spassvogel

+0

IT不是我的服務器。它是一個Rest服務,我知道它支持跨域,因爲我提到 – itamar

相關問題