php - 错误 400

标签 php jquery ajax yii

在我的 View 中,我有一个 AJAX 调用到我的 Controller 中的一个 Action 。但是,我总是收到错误 400。下面是我的 AJAX 调用的代码:

    $.ajax({
        cache: false,
        url: '/dummy/index.php/module/controller/checkCross',
        dataType: 'json',
        type: 'POST',
        data : {"male":parents[0],"female":parents[1]},
        success: function(result){
            alert(result);
        }
    });

Controller 中的代码如下:

 public function actionCheckCross(){

     if(Yii::app()->request->isPostRequest) { // check if POST
        $flag = CrossingMatrix::model()->checkParentsIfCrossed($_POST['male'],$_POST['female']);

        if($flag){
            return true;
        }

        else{
            return false;
        }

    } else { // direct URL request will be GET, so show error
        throw new CHttpException(400, Yii::t('app', 'Direct access is not allowed.'));
    }

}

有什么想法吗?

最佳答案

您需要 json 数据,但您向浏览器发送了空页面。你应该这样编码结果:

echo CJavascript::jsonEncode((bool)$flag);
Yii::app()->end();

在您的代码中,您返回了值。请注意,您的 yii 异常消息是不允许直接访问,但您的错误是您的请求无效。

关于php - 错误 400,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16333989/

相关文章:

jquery - AJAX:加载 HTML、CSS 链接不起作用

ajax - 带有ajax的Laravel 5.2表单验证回调函数

php - 如何通过套接字在 PHP 和 C++ 应用程序之间进行通信?

javascript - getJson 返回数组时出现问题

javascript - 表单未在 ajax 从 php 返回的 html 数据中提交

javascript - 当通过鼠标操作更改浏览器文本输入时使用react

javascript - 使用 Backbone.js 创建模态框

php - jQuery 当我选择一个选项来调用函数时

php - 我如何在 PHP 的两个不同服务器中交叉我的两个不同数据库?

php - PHP 中的未知 MySQL 服务器主机错误