未捕获的SyntaxError:位于1610的JSON中的意外标记C.

时间:2017-03-06 15:41:33

标签: javascript jquery json ajax

我在Ajax中收到错误

Uncaught SyntaxError: Unexpected token C in JSON at position 1610

jQuery调用ajax json为

$.ajax({
   type: "POST",
    url: url,
    dataType: "json",
    data: "q=" +value,
    cache: false,
    success: function(data){
       if(data.results.length === 0){
         console.log("No Data");
       }else{
         for (var i in data.results) {
            var name = data.results[i].name;
            alert(name);
         }
       }
    },
    error: function(xhr, status, error) {
        var err = JSON.parse(xhr.responseText);
        alert(err.Message);
    }
});

来自服务器的JSON是

{
"results": [

{
    "id": " 14914",
  "asd" : "25263",
    "name": "asd ",
  "label":"ad ",
  "price":"35.00"
}, 
{
    "id": " 14916",
  "asd" : "7947",
    "name": "asd dasd asd ds",
  "label":"ad ad asd a",
  "price":"145.00"
}]
}

1 个答案:

答案 0 :(得分:0)

正如您所提到的,dataType: "json"表示您的js期望响应是有效的json。 实际上你的json是有效的,但你还需要将内容类型设置为json,以便正确解析它。

您需要将内容类型标题设置为application / json。

在php中你可以使用:

header('Content-Type: application/json');