1

私のhtmlファイルはNginxのhtmlフォルダーの下にあります.Angular経由で$ httpリクエストをPlayアプリケーションに送信しようとしました。Play アプリケーションはポート 9210 の下にありますが、nginx はポート 80 をリッスンします (html ファイルを表示するため)。異なるポートは異なるドメインとして扱われるため、ここに問題があると思います。

私のNginxサーバーの構成は次のとおりです。

listen 80;
        listen 443 default ssl;
        server_name  localhost;
     #ssl on;
     ssl_certificate      /usr/local/nginx/conf/server.crt;
     ssl_certificate_key  /usr/local/nginx/conf/server.key;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

     location / {           
        add_header Access-Control-Allow-Origin http://127.0.0.1;

     }

Play のルート ファイルの関連部分は次のとおりです。

POST    /processReq             controllers.Application.processReq()

角度で私の $http リクエストは次のとおりです。

$scope.url = 'http://ec2-50-112-30-246.us-west-2.compute.amazonaws.com:9210/processReq';
$scope.routeReview = function() {
$http.post($scope.url, { "blanCommand": "read reviews() for=\""+$scope.keywords+"\" mode=full"}).
        success(function(data, status) {
            $scope.status = status;
            $scope.data = data;
        $rootScope.reviews = data;
        alert('success'); 
        $location.path('/review');
        })
        .
        error(function(data, status) {
            $scope.data = data || "Request failed";
            $scope.status = status;   
        alert('fail');
        $location.path('/review');
        });
    };

私の質問は次のとおりです。要求すると、Access-Control-Allow-Origin エラーが表示されます。Web アプリケーションを構成する適切な方法は何ですか?

よろしくお願いします

4

2 に答える 2

1

必要なのは、Nginx がプロキシとして機能し、リクエストを Play への特定のサブパスにリダイレクトし、他のリクエストに HTML ファイルを提供することです。

Playのドキュメントには、それに関する情報がいくつかあります。

于 2013-06-17T14:04:02.593 に答える