1

2 つの (ローカル) サブドメインがあります:kohana.local.comwordpress.local.com. jQuery プラグイン (.js) は kohana.local.com ドメインにあり、両方のドメインで記事の評価と評価数の取得を処理します。Controller_Rating は Controller を拡張します。メソッド (action_getrating) には次のコードがあります (kohana 3.2):

if($this->request->post() && $this->request->is_ajax()){
    $this->auto_render = FALSE;
    echo "{$_REQUEST['callback']}(".json_encode($data).")";
}

Ajax 呼び出し:

$.ajax({
    type: "POST",
    url: "http://kohana.local.com/rating/getrating",
    dataType: "jsonp",
    data: { some_id: id },
    success: function(json){
            //do something
    }
});

kohana.local.com から ajax 呼び出しが発行されると、すべてがうまく機能します。wordpress.local.com から発行された場合$this->request->is_ajax()は false で、メソッドは「投稿」ではなく、何とか「取得」です。これの理由は何ですか、そしてそれを機能させる方法は何ですか?Post が必要で、is_ajax はセキュリティと検証に適しています。

前もって感謝します。

編集: jsonp への投稿はできないため、このアプローチは使用できません。私はjsonの方向で解決策を見つけようとする必要があります

4

1 に答える 1

0

単純にjsondataType を使用できるため、コールバックを使用する必要はありません。Access-Control-Allow-Originリクエストが行われるサーバー (kohana.local.com)にヘッダーを追加するだけです。

すべてのドメインが許可されています。

Access-Control-Allow-Origin: *

または、許可されたドメインを指定します:

Access-Control-Allow-Origin: http://wordpress.local.host

仕様: http://www.w3.org/TR/2008/WD-access-control-20080912/#access-control-allow-origin


複数ドメイン ソリューション: Access-Control-Allow-Origin Multiple Origin Domains?

于 2013-01-15T23:44:21.137 に答える