1

我正在使用 Django Rest Framework 测试一个 Rest 服务器。通过遵循 Django Rest 网站的 tut,我成功生成了一个适当的 API。但是当我尝试使用backbone.js 与该服务器进行本地通信时,它似乎无法一起通信。

服务器放置在地址:http://localhost:8080/users/ 客户端:http://localhost/client

这是客户端中的集合和视图

    var Users = Backbone.Collection.extend({
        url: 'http://localhost:8080/apis/',
    });

解析后的网络显示状态:取消类型:挂起

我怀疑端口不同导致了错误。任何人都可以指出正确的方法吗?谢谢

4

1 回答 1

4

由于同源策略要求,浏览器不允许您从 to 发出 POST/PUT ajaxlocalhost(:80)请求localhost:8080。为了让浏览器认为两个地址具有相同的来源,它们必须具有相同的协议 (http/https)、域名 (localhost) 和端口号。

您可以在 localhost:80 处配置 Web 服务器,以将请求代理到 localhost:8080。大多数 Web 服务器通过简单的配置更改即可支持此功能。例如,如果您使用 apache,请参阅文档

示例 Apache 代理配置:

ProxyPass /api http://localhost:8080/
ProxyPassReverse /api http://localhost:8080/

localhost:8080/users在此之后,您可以通过以下方式访问地址localhost/api/users

var Users = Backbone.Collection.extend({
    url: '/api/users',
});
于 2012-12-11T11:20:33.727 回答