Javascript 带有JSON响应的jQuery post

Javascript 带有JSON响应的jQuery post,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我有一个jQuery代码,它使用$.post for Ajax: $.post(ajax_url , { upload_id: upload_id }, function (response) { console.log(response); console.log(jQuery.type(response)); }, "json"); 以及php代码: $data = Array( 'status' => '1', 'msg' => '', 'progress'

我有一个jQuery代码,它使用$.post for Ajax:

$.post(ajax_url , { upload_id: upload_id },
function (response) {
    console.log(response);
    console.log(jQuery.type(response));
}, "json");
以及php代码:

$data = Array(
'status' => '1',
'msg' => '',
'progress' => '0.24',
'time' =>'<span class="text-white">06:51</span> left (at 21KB/sec)',
'size' => '<span class="text-white">26KB</span> / 10.91MB (0.24%)');

echo json_encode($data);
die();
警报为parsererror。

有什么问题

更新

如果我从ajax代码中删除了
“json”
,则响应将打印类型
字符串
代码
{“status”:1,“msg”:“progress”:“0.15”,“time”:“11:11剩余(10千字节/秒)”,“size”:“16KB\/10.91MB(0.15%)”}


我需要它json

您的服务器是否以内容类型
“*/json”
发送数据?如果没有,则相应地修改响应头。例如,发送
“application/json”
就可以了。代码应该是:
header('Content-type:application/json')

另一种可能的解决方案是在json url中将“\”切换为“/”

在另一个页面中尝试此操作,并在控制台中显示


登录浏览器控制台网络什么是响应数据我在问题中告诉过你,ajax\u url无效吗?什么是上载id?(在我的机器上工作)出现此parserror消息的原因是,当您仅返回字符串或其他值时,它实际上不是Json,因此解析器在解析它时失败。只需在test.php中复制此代码,并在控制台中显示response.with
header('Content-type:application/Json')
或不带它,它在有或没有标题的情况下都可以工作('Content-type:application/json');工作,你解决了。真正的php代码是用json传递的文本字符串,所以它不是真正的json,您的代码让我看了php返回。您的json响应是:-{“状态”:1,“消息”:“进度”:“0.15”,“时间”:“11:11左(10KB\/秒)”,“大小”:“16KB\/10.91MB(0.15%)”
.fail( function(jqXHR, textStatus, errorThrown) {
alert(textStatus)});
<?php
if($_POST){
header('Content-type:application/json');
$data = Array(
'status' => '1',
'msg' => '',
'progress' => '0.24',
'time' =>'<span class="text-white">06:51</span> left (at 21KB/sec)',
'size' => '<span class="text-white">26KB</span> / 10.91MB (0.24%)');
echo json_encode($data);
exit();
}

?>
<input type="button" onclick="senddata()" value="send" />
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script> 
function senddata(){
    var upload_id=1
    $.post('test.php' , { upload_id: upload_id },
    function (response) {
    console.log(response.status);
    }, "json");
} 
</script>