1

这段代码给了我一个 json 解析错误:

$(document).on('ready', function() {            
    $("#q").on('keyup', function(){                  
        $.ajax({
            url: 'newsearch.php',
            dataType: 'json',
            type: 'POST',
            timeout: 125,
            data: {q:$("#q").val()},
            success: function(jsonData){
                var responseData = $.parseJSON(jsonData);
                parseSearchResults(responseData);
            },
            error: function() {
                console.log("Error");
            }
        });
    }); 
});

当此代码没有时:

$(document).on('ready', function() {            
    var filterTimeout;
     $("#q").keyup(function (event) {            
         clearTimeout(filterTimeout);
         filterTimeout = window.setTimeout(function () {
             $.post("newsearch.php", {q: $("#q").val()}, function (jsonData) {
                 var contactData = $.parseJSON(jsonData);
                 parseSearchResults(contactData);                
             });
         }, 125);
    }); 
});

这是我的json字符串:

{"A":[{"primary_emailaddress":"someemail@gmail.com","alternate_emailaddress":"someemail@email.com","personal_address_line1":"123 west avenue\\n","personal_address_city":"boynton beach","birthday_month":"October","personal_address_zipcode":"33324","home_phonenumber":"1111","company_phonenumber":"1111","cell_phonenumber":"1111","birthday_day":"19","birthday_year":"1982"}]}

4

1 回答 1

1

因为您指定dataType: 'json'了 ,所以 jQuery 自动将其解析为 JSON,导致$.parseJSON调用失败(因为数据不再是有效的 JSON 字符串,而是 JavaScript 对象)。

只需使用:

var responseData = jsonData;
于 2013-07-28T23:34:22.633 回答