Php Yii2:isAjax返回false

Php Yii2:isAjax返回false,php,jquery,ajax,yii2,Php,Jquery,Ajax,Yii2,我正在用ajax开发一个yii2搜索栏。问题在于Yii::$app->request->isAjax属性总是返回false 这是我的行动: public function actionAjaxsearch() { if(Yii::$app->request->isAjax) { $keywords = Yii::$app->request->queryParams; Yii::$app->response-

我正在用ajax开发一个yii2搜索栏。问题在于
Yii::$app->request->isAjax
属性总是返回
false

这是我的行动:

public function actionAjaxsearch()
{   
    if(Yii::$app->request->isAjax)
    {   
        $keywords = Yii::$app->request->queryParams;
        Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        return [
            'data' => $keywords,
            'code' => 200
        ];
    }
    else throw new \yii\web\HttpException(404, 'Page not found.');
这是我的剧本:

$('#search-box').keyup(function( event ){
    event.preventDefault();     
    $.ajax({
        url: 'http://localhost/items/ajaxsearch',
        data: {keywords: $( '#search-box' ).val()},
        type: 'GET',
        dataType: 'json',
    }).done(function(){
        console.log('success');
    }).fail(function( data ){
        alert( data );
    }).always(function(){
        alert('finished');
    })
});
如果我不将
If
Yii::$app->request->isAjax
一起使用,那么控制器只需使用数据呈现JSON

p.D成功传递
#搜索框
的内容

编辑到@SilverFire

不要在垃圾堆里放一些

["HTTP_X_REQUESTED_WITH"] => not defined,
["HTTP_ACCEPT"]=> string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
["CONTENT_TYPE"] =>not defined,
["HTTP_CONTENT_TYPE"] =>not defined,
["REQUEST_METHOD"]=> string(3) "GET",
["HTTP_X_HTTP_METHOD_OVERRIDE"] =>not defined,

嗯,由于某些原因,您的浏览器不会将带有头的
HTTP\u X\u请求的\u发送到服务器


它猜测它可能与:和

您能否显示您的
$\u服务器
转储?@SilverFire您需要查看任何特定变量?我的工作是在dev服务器上编程。因此,我不希望所有的$服务器都显示得足够公平。您能用HTTP\u X\u REQUESTED\u、HTTP\u ACCEPT、CONTENT\u TYPE、HTTP\u CONTENT\u TYPE、REQUEST\u METHOD、,HTTP_X_HTTP_METHOD_覆盖了这个问题。我曾尝试在ajax请求中添加
X-request-With
头,但仍然不起作用。在ajax请求中添加此头后,您是否在PHP端看到此头?这是服务器猜测它是ajax请求的唯一方法,因此问题最多与XHR请求相关。您能否从浏览器调试控制台显示一个屏幕截图或文本转储,其中包含有关请求的详细信息?