无法在1.10.2 / jquery.min.js下执行JSON.parse()

时间:2013-12-24 10:29:32

标签: javascript php jquery json

如果我使用JSON.parse()来解析PHP数组返回,如果应用1.3.2 / jquery.min.js而不是1.10.2 / jquery.min.js,那么这是有用的吗,有没有人有类似的经验和溶液

PHP数组返回

$returnArray['vercode'] = FALSE;
echo json_encode($returnArray);

AJAX调用

$.ajax({
    cache: false,
    type: "POST",
    dataType: "json",
    data: $('#form1').serialize(),
    url: $('#form1').attr('action'),
    complete: function (HttpRequest, textStatus) {
        $obj = JSON.parse("HttpRequest.response");
    }
});

3 个答案:

答案 0 :(得分:4)

首先,解析字符串“HttpRequest.response”,删除引号。然后,当您将dataType设置为“json”时,您不必解析它以获取数组。

$.ajax({
    cache: false, 
    type: "POST", 
    dataType: "json",
    data: $('#form1').serialize(),
    url: $('#form1').attr('action'),
    complete: function (HttpRequest, textStatus) {
        $obj = HttpRequest.response;
  }});

答案 1 :(得分:3)

改为使用:

$obj = JSON.parse(HttpRequest.response);

JSON.parse("HttpRequest.response");会因为您尝试解析字符串而导致错误:"HttpRequest.response"

此外,您可能不需要使用JSON.parse(),因为jQuery已使用dataType: "json"解析了内容:

$obj = HttpRequest.response;

答案 2 :(得分:0)

应改为使用:

$obj = JSON.parse(HttpRequest.responseText);

HttpRequest.response与HttpRequest.responseText相同,如果没有将dataType指定为json但不正确属性(http://www.w3schools.com/ajax/ajax_xmlhttprequest_response.asp