1

前の質問で尋ねた ajax 呼び出しを使用して、WordPress サイトにログインしようとしています。何も返してはいけません。しかし、この ajax 関数を呼び出すたびに、Firefox(firebug) は 200 OK を赤で表示しています。これはクロスドメインの問題である必要があります。あまりにも多くのことを試しましたが、これまでのところ運がありません。コードは次のとおりです。

$.ajax({
         type: "POST",
         url: "http://path-to-wordpress/wp-login.php",
         data:myData
         success: function(data){

         },
        error: function (xhr, ajaxOptions, thrownError) {

        }   
});

任意の提案をいただければ幸いです。

4

4 に答える 4

2

あなたのJSコードはオンabc.comで、ワードプレスサイトはdev.abc.com.

.htaccessクロス ドメインの問題を修正するには、次のコードをワードプレス サイトのファイルに追加するだけです ( dev.abc.com)

SetEnvIf Origin "^http(s)?://(.+\.)?(abc\.com)$" origin_is=$0 
Header always set Access-Control-Allow-Origin %{origin_is}e env=origin_is

(abc\.com)適切なサイト名に置き換えるだけです。例:(google\.com)または(yahoo\.com)

于 2012-11-01T10:12:20.037 に答える
1

$.ajax の crossDomain というプロパティがあります。true に設定してください。

于 2012-11-01T10:21:08.933 に答える
1

ajax 呼び出しでdataType を , に設定するとJSONP、クロスドメインで動作します

ajax 呼び出しの参照については、jQuery Ajaxを参照してください。

于 2012-11-01T10:05:20.693 に答える
0

ページにCORS ヘッダーを追加する必要がありwp-login.phpます。

方法は次のとおりです

ただし、ページの性質上、特に注意してください。すべてのオリジン (*) を許可するのではなく、自分のサイトのみを許可してください。すべてを許可すると、ユーザーのログイン情報が盗まれる可能性があります。

于 2012-11-01T10:02:15.483 に答える