【发布时间】:2015-06-26 00:45:30
【问题描述】:
我尝试从我的服务器获取 JSON 数据。但它适用于某些数据,不适用于其他数据。
我试图捕捉错误,它说解析 JSON 请求失败。
这是代码
var url1 = 'http://example.com/example/bookdetail.php?id='+e;
$.ajax({
type: "GET",
url: url1,
dataType: "json",
success: function(data){
//do my stuff with the JSON data
},error:function(x, e){
if (x.status === 0) {
alert('You are offline!!\n Please Check Your Network. ' + x.reponseText);
}
else if (x.status == 404) {
alert('Requested URL not found.');
} else if (x.status == 500) {
alert('Internel Server Error.');
} else if (e == 'parsererror') {
alert('Error.\nParsing JSON Request failed.');
} else if (e == 'timeout') {
alert('Request Time out.');
} else {
alert('Unknow Error.\n' + x.responseText);
}
}
});
这是JSON格式的数据
解析失败的数据
[{
"id": "480",
"title": "Cocokologi dalam Dunia Agama",
"photo": "1374573181_cover.jpg",
"pdf": "http://example.com/example/1374573181.pdf",
"desc": "Apakah teks-teks kitab suci sejalan atau cocok dengan pandangan-pandangan saintifik modern, seperti diklaim oleh banyak kaum agamawan pada masa kini? ..."
}]
工作 JSON 格式
[{
"id": "330",
"title": "Demokrasi dan Kekecewaaan",
"photo": "1374497593_cover.jpg",
"pdf": "http://example.com/example/1374497593.pdf",
"desc": "Buku ini bermula dari orasi ilmiah yang disampaikan Goenawan Mohamad (GM) dalam acara Nurcholish Madjid Memorial Lecture (NMML), yang berlang- sung di Aula Nurcholish Madjid, Universitas Paramadina, Jakarta, pada 23 Oktober 2008 lalu. Acara ini adalah acara tahunan Yayasan Wakaf Paramadina (YWP)—kali ini untuk kedua kali, setelah di tahun sebelumnya Dr. Komaruddin Hidayat menyampaikan orasi sejenis untuk pertama kali. Selain untuk mengenang sosok dan pemikiran Cak Nur, be- gitu biasa..."
}]
这两种类型的 JSON 来自相同的来源,但结果不同。第一个 JSON 数据中是否存在错误的 JSON 格式?
堆栈跟踪结果
This is from stack trace
x.extend.parseJSON (jquery-1.10.2.min.js:4)
On (jquery-1.10.2.min.js:6)
k (jquery-1.10.2.min.js:6)
x.ajaxTransport.send.r (jquery-1.10.2.min.js:6)
Paused on exception. "SystaxError"
JSON 数据
[{ "id" : "330",
"title" : "Demokrasi dan Kekecewaaan",
"photo" : "1374497593_cover.jpg",
"pdf" : "http://example.com/books/1374497593.pdf",
"desc" : "Buku ini bermula dari orasi ilmiah yang disampaikan Goenawan Mohamad (GM) dalam acara Nurcholish Madjid Memorial Lecture (NMML), yang berlang- sung di Aula Nurcholish Madjid, Universitas Paramadina, Jakarta, pada 23 Oktober 2008 lalu. Acara ini adalah acara tahunan Yayasan Wakaf Paramadina (YWP)—kali ini untuk kedua kali, setelah di tahun sebelumnya Dr. Komaruddin Hidayat menyampaikan orasi sejenis untuk pertama kali. Selain untuk mengenang sosok dan pemikiran Cak Nur, be- gitu biasa..." }
【问题讨论】:
-
JSON 是正确的。其他地方有问题。不是 JSON 格式。
-
其他错误的可能性是什么?
-
你能告诉我们堆栈跟踪中错误的确切位置吗?
-
你在加载跨域吗?如果是,服务器是否以有效的 JSONP 外观响应进行响应?
-
是的,我使用跨域。它适用于其他数据,如示例中所示,适用于 id = 330,但不适用于 id = 480