0

jqueryを使用したajaxクロススクリプトリクエストで問題が発生しました。私はtest.example.comという名前のサブドメインにいて、次のようにwww.example.com/actionへのajax呼び出しを行っています。

$.ajax({ 
url:"http://www.example.com/action",
type:"post", 
crossDomain:true,
dataType:"jsonp",
jsonp:"cross_domain_action",
xhrFields:{withCredentials:true},
success:function(data){}
});

問題は、リクエストがajaxであるかどうかをwww.example.com/actionでテストする方法がわからないことです。

CakePHP 1.3を使用していますが、関数を含む「request_handler.php」というコンポーネント呼び出しがあります。

function isAjax() {
    return env('HTTP_X_REQUESTED_WITH') === "XMLHttpRequest";
}

リクエストにそのHTTPヘッダーが含まれていないことがわかりました。

X-Requested-With    XMLHttpRequest

何かアイデアがあれば:)ありがとう

4

2 に答える 2

0

ヘッダーを手動で確認する必要はありません。Cake 1.3は、コントローラーの$this->paramsプロパティで次の情報を提供します。

$this->params['isAjax']

現在のリクエストがajax呼び出しの場合は1を保存し、そうでない場合は0を保存します。こちらで確認してください。。

于 2012-08-07T06:12:35.267 に答える
0

それが、ajaxリクエストであるかどうかをテストするために使用するものです。私は通常使用します:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) 
&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') 
{//this is an ajax request}
于 2012-08-06T11:05:02.797 に答える