我使用$ .getJSON()不断收到错误。我正在使用JSONP。这是代码:
$.getJSON('http://s3.amazonaws.com/eloqu/TestFile.js?callback=?', function(data){
console.log(data);
})
.fail(function( jqxhr, textStatus, error ) {
console.log( "Request Failed: " + textStatus + ', ' + error);
});
我得到的只是一个'parsererror'。如果我将url的结尾更改为callback = mycallback,我只是得到'错误',没有类型。
答案 0 :(得分:1)
这有点奇怪......
这是一个工作小提琴..我必须定义mycallback
函数:
$(document).ready(function () {
$.getJSON('http://s3.amazonaws.com/eloqu/TestFile.js?callback=?');
});
function mycallback(data) {
console.log(data);
}
我认为问题是远程文件是静态的。通常,您发送所需的回调,远程服务将数据包装在您指定的回调中。这是jQuery实际请求的一个例子:
http://s3.amazonaws.com/eloqu/TestFile.js?callback=jQuery20209767435337416828_1376014401926&_=1376014401927
因此jQuery期望回调为jQuery20209767435337416828_1376014401926()
,但这不会发生(因为远程文件是静态的)。由于数据没有达到jQuery期望的回调,因此很可能尝试json解析一个未定义的对象,这会给你解析错误。
答案 1 :(得分:0)
您的回报如下:
mycallback({ "test": "variable", "test2": "variable2" })
虽然有效的json是:
{ "test": "variable", "test2": "variable2" }
有效的json只能以数组符号[或对象符号{开头} 您可以在http://jsonlint.com
上验证任何json字符串