【发布时间】:2014-07-19 05:43:10
【问题描述】:
我有一个主干站点,我正在尝试启动和运行。我想提供给它的 API 位于同一台服务器上,但位于不同的端口(端口 8080)上。
当我尝试访问 API 时,我收到有关“同源策略”等的错误,但由于它们位于同一台服务器上,我不确定自己做错了什么。
如何使用我的模型从 API 访问数据?
define(function (require) {
"use strict";
var $ = require('jquery'),
Backbone = require('backbone'),
api = "http://localhost:8080/api/v1/",
Candidate = Backbone.Model.extend({
urlRoot: api + "profiles/",
idAttribute: 'password',
initialize: function () {
console.log('Candidate initialized');
},
validate: function (attributes) {
console.log('validate');
console.log(attributes);
},
}),
CandidateCollection = Backbone.Collection.extend({
model: Candidate,
url: api + "profiles/",
});
return {
Candidate: Candidate,
CandidateCollection: CandidateCollection
};
});
【问题讨论】:
-
您需要查找 CORS 或/和设置代理服务器,如 nginx 或 apache,具体取决于您使用的服务器端语言。首先搜索 CORS,您必须设置特殊的响应标头.
-
您需要使用 CORS。 stackoverflow.com/questions/5714135/… 编辑:如上^^
-
即使它在同一台服务器上?我想我不明白它为什么这样做。
-
不同的端口就像在不同的域上一样好。 en.wikipedia.org/wiki/Same_origin_policy 这是一个关于如何使用 NGINX 执行此操作的链接 serverfault.com/questions/384105/…