1

DjangoRestFrameworkを使用してRESTサーバーをテストしています。Django Rest Webサイトのツイッターをフォローすることで、適切なAPIを正常に生成できました。しかし、backbone.jsを使用してそのサーバーとローカルで通信しようとすると、相互に通信できないようです。

サーバーは次http://localhost:8080/users/ のアドレスに配置します。クライアント:http://localhost/client

これは、クライアントのコレクションとビューです

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

解析後のネットワークは、ステータス:キャンセル済みおよびタイプ:保留中を示します

ポートが違うとエラーが発生したのではないかと思います。正しい方法を教えてもらえますか?ありがとう

4

1 に答える 1

4

同一生成元ポリシーの要件があるため、ブラウザでは、からlocalhost(:80)へのPOST /PUTajaxリクエストを行うことはできません。localhost:8080ブラウザが2つのアドレス指定されたものを同じオリジンであると見なすには、それらが同じプロトコル(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 に答える