【发布时间】:2011-02-14 00:30:12
【问题描述】:
我在 site.com 上试图从我在端口 8080 上服务的 node.js 服务器获取一些 json 数据。
我收到此错误消息:
XMLHttpRequest cannot load http://site.com:8080/json/1. Origin http://site.com is not allowed by Access-Control-Allow-Origin.
我的代码:
$.get('http://site.com:8080/1/', {}, function (Data) {
console.log(Data);
}, "json");
但它是同一个域! :(
同时考虑我的backbone.js 模型:
model = Backbone.Model.extend({
url: function() {
return 'http://site.com:8080/' + this.id
}
});
除了使用jsonp还有什么办法解决吗?
谢谢。
【问题讨论】:
-
端口也必须匹配,否则jsonp确实是唯一的选择。
-
我遇到了同样的问题。恕我直言,这应该在文档中澄清(端口被认为是域的一部分)。另外,跨子域的请求也是非法的吗?
标签: javascript jquery ajax cross-domain backbone.js