2014-02-18 62 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

相关问题