无法解释为什么即使我返回json,Ajax也会返回错误

时间:2017-01-25 21:39:35

标签: javascript php jquery json ajax

所以我已经多次看到这个问题和很多答案,但没有一个能解决我自己的问题,我真的不明白这可能来自哪里。

为什么我用我的控制器返回json内容但仍然访问我的Ajax请求的错误部分?

这是我的Ajax:

$.ajax({
    url: '../ajax/addArticle',
    type: 'POST',
    data : {
        title : $('#title').val(),
        content :  CKEDITOR.instances.editor.getData(),
    },
    dataType: 'json',
    success: function (data){
        console.log(data);
        if(data == "Posted"){
            alert('Article posté');
            window.location = "/blog";
        }
    },
    error: function(e) {
          console.log(e);
    }
});

然后我的控制器返回:

$data = ['data' => 'Posted'];
header('Content-Type: application/json');
$data = json_encode($data);
return $data;

然而这是输出:

Screen of netwok

2 个答案:

答案 0 :(得分:0)

您应该在服务器上执行此操作:

self.executeLoginRacCommand

服务器此刻没有回应任何内容,因此请求失败的原因是,因为您有一个echo json_encode($data); // $data = json_encode($data); // return $data; ajax,它没有从服务器获得JSON响应

答案 1 :(得分:0)

Ajax返回是服务器的响应,解释为文本(或HTML)输出 你的代码应该是:

$data = ['data' => 'Posted']; 
header('Content-Type: application/json'); 
$data = json_encode($data);
echo $data;