1

リモートサーバーに Ajax リクエストを送信し、パラメーターを POST メソッドとして送信しています。しかし、私は次の応答を得ています:

**"MLHttpRequest cannot load http://rasovai.com/mobilecontact1.php?_dc=1369189135731. Origin null is not allowed by Access-Control-Allow-Origin.  "**

このエラーについて読んだところ、CORS が原因であることがわかったので、次のようにリクエストにヘッダーを追加します。

 Ext.Ajax.defaultHeaders = {
                                        'Accept': 'application/json',
                                        'Accept': 'Access-Control-Allow-Origin: *',
                                        'Accept': 'Access-Control-Allow-Credentials:   true',
                                          'Accept': 'Access-Control-Allow-Methods: OPTIONS, GET, POST',
                                        'Accept': 'Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control'
                                    };

それでも、応答で同じエラーが発生します。

サーバーで URL をヒットできますが、パラメーターを渡すことができません。

この点で誰かが私を助けることができますか?

ありがとうイシャン・ジャイン

4

3 に答える 3

2

これらのヘッダーは、クライアントではなくサーバーによって送信される必要があります。

于 2013-05-22T02:53:58.383 に答える
0

Chrome ブラウザーを使用している場合は、--disable-web-securityフラグを使用してクロス ドメイン リクエストを許可できます。これをアプリに組み込む場合、これは正常に機能します。詳細については、このスレッドをご覧ください: How to use json proxy to access remote services during development

于 2013-05-22T06:51:27.347 に答える
0

パラメータをサーバーに渡したい場合は、次のようにできます。

 Ext.Ajax.request({
            url : serverURL,
            jsonData : requestParams,  //  Object which encapsulates the request params
            method : 'POST',
            withCredentials: true,
            useDefaultXhrHeader: false,

           // List of header params can be sent as follows
            headers : {
                "Content-Type" : "application/json",
                "Accept" : "application/json",
                "Access-Control-Allow-Origin":"http://localhost:8080",
                "Authorization":auth
            },

            username : 'mobiliser',
            password : 'secret',
            success : function(response) {
             }
            failure : function ()
             {
             }

質問で言ったように、サーバーは別のドメインにあるため、JSONP リクエストを使用する必要がある場合があります。

ご不明な点がございましたら、お知らせください。

ありがとう - ゲンダフル

于 2013-05-22T19:37:55.580 に答える