簡體   English   中英

Ajax調用Yii2時發生跨域錯誤

[英]Cross domain error on Ajax call, Yii2

這是我的探針的簡化版本。

我嘗試對特定的控制器/操作url進行查看,並期望json響應進行簡單的ajax調用。

視圖/圖稿/ajax.js

ajaxRequest = $.ajax({
    type: "post",
    dataType: 'json',
    url: "/index.php?r=artwork/search",
    data: { "globalSearch": "somesearchterm" }
});

與請求相對應的操作(在本例中為actionSearch )只需返回參數的值globalSearch作為響應即可。

控制器/ArtworkController.php

public function actionSearch()
{
    if (Yii::$app->request->isAjax) {

        Yii::$app->response->format = Response::FORMAT_JSON;

        $sterm = Yii::$app->$request->post('globalSearch');

        $res = array(
            'logicresult' => $sterm,
            'success' => true,
        );

        return $res;
    }
}

但是,我遇到了一個jQuery跨域錯誤。 我做錯了什么?

Chrome控制台日志

POST http://localhost/index.php?r=artwork%2Fsearch 500 (Internal Server Error)
n.ajaxTransport.k.cors.a.crossDomain.send @ jquery.min.js:4
n.extend.ajax @ jquery.min.js:4handleAjaxLink @ajax.js:19
n.event.dispatch @ jquery.min.js:3
n.event.add.r.handle @ jquery.min.js:3

500(服務器內部錯誤)表示服務器方面出現了問題。

這不是跨域錯誤。 錯誤在您的PHP代碼中。

您忘記為if條件添加close } (按照操作問題actionSearch代碼中提到的AS進行操作)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM