0

API の実装に問題があります。Nginx サーバーで Slim Framework、PHP を使用して API を実装しています ドメイン api.mydomain.com に API を実装し、services.mydomain などのドメインに GET、POST、PUT リクエストを送信しようとするとします。 .comまたはapps.mydomain.com.私たちのリクエストは、セキュリティのために「x-api-key」と「x-session-key」のカスタムヘッダーを追加する必要があります.しかし、できないメソッドを追加しようとするとjqueryを使用します別のドメインにリクエストを送信できます。両方の方法を追加して試しました

headers: { 'X_API_KEY' : 変数名.apiSecretKey }, beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');},

jQuery.ajax({
                url: secretIdUrl,
                    type:'GET',
                    crossDomain: true,
                    //headers: { 'X_API_KEY' : varibaleName.apiSecretKey },
                    beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');},
              dataType: "json",

                success: function (data) {          
                         if(data.results){
                              widgetControl.setSecretID(data.results.id);
                         }
                }
            });

同様の問題の経験がある場合は、ajax リクエストのクライアント側でこの問題を解決する方法を教えてください。

参考文献 : http://enable-cors.org
http://dev.opera.com/articles/view/dom-access-control-using-cross-origin-resource-sharing
http://www.nczonline.net/ブログ/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/

4

1 に答える 1

0

試す:

location / {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'X_API_KEY'; # and all headers ', ' separated
}

add_header の詳細: http://wiki.nginx.org/HttpHeadersModule#add_header

于 2013-07-12T13:08:16.057 に答える