Fri*_*rce 6 javascript ajax jquery cross-domain backbone.js
我在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.
Run Code Online (Sandbox Code Playgroud)
我的代码:
$.get('http://site.com:8080/1/', {}, function (Data) {
console.log(Data);
}, "json");
Run Code Online (Sandbox Code Playgroud)
但它是同一个领域!:(
还要考虑我的backbone.js模型:
model = Backbone.Model.extend({
url: function() {
return 'http://site.com:8080/' + this.id
}
});
Run Code Online (Sandbox Code Playgroud)
除了使用jsonp之外,还有什么方法可以解决这个问题吗?
谢谢.
如果您正在拨打同一个域名,为什么您的$.get请求中有绝对路径?
试试这个:
$.get('/1/', {}, function (Data) {
console.log(Data);
}, "json");
model = Backbone.Model.extend({
url: function() {
return '/' + this.id
}
});
Run Code Online (Sandbox Code Playgroud)
如果您真的在同一个域上进行呼叫,那么上面的代码应该可行.
或者,您可以修改 Node.js 服务器以允许跨源资源共享 (CORS)。这仅适用于现代浏览器。最简单(也是最不安全)的事情是让您的 Node.js 服务器发出标头“Access-Control-Allow-Origin: http://site.com ”。您可以在这里了解有关 CORS 的更多信息:http://www.w3.org/TR/cors/
| 归档时间: |
|
| 查看次数: |
2582 次 |
| 最近记录: |