我试图向远程Rest(put方法)api 发出请求
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;
失败
没有"Access Control Allow Origin"标头
尽管我成功地通过rest客户端浏览器插件进行了调用。
我错过了什么?
由于安全原因,所有浏览器都不接受来自您站点的ajax跨源请求。
为了让浏览器接受ajax跨源请求,服务器代码必须设置标题"Access Control Allow origin"来响应,以通知浏览器接受ajax交叉源请求。
在浏览器插件(例如:chrome应用程序)中,chrome允许开发者配置跨源发送请求。所以您可以在REST客户端插件中发送跨域请求。(http://developer.chrome.com/apps/app_external.html#manifest)
在服务器上添加Access Control Allow Origin或使用JSONP(请参阅JSONP的全部内容?)