fer*_*vak 3 jquery json jsonp backbone.js
简单的问题,如果我有这样的静态文件(使用mockJSON web生成JSON)
http://www.webwrx.sk/clients/data.json.txt
我需要用这个文件把它改成JSONP吗?我需要以某种方式修改它吗?文件如api.flickr.com有什么不同?
我甚至在该文件中添加了():
http://www.webwrx.sk/clients/data2.json.txt
仍然下面的代码不会工作:
var params = _.extend({
'method': 'GET',
'url': this.url,
'cache': true,
'dataType': 'jsonp',
processData: true
}, options);
return $.ajax(params);
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助.
JSON和JSONP格式之间的唯一区别是后者中存在函数调用.
JSON:
[ "foo", "bar" ]
Run Code Online (Sandbox Code Playgroud)
JSONP:
callback([ "foo", "bar" ])
Run Code Online (Sandbox Code Playgroud)
确保您callback的代码中定义了该名称(此处为:)的函数,因为它将被调用:
function callback(jsondata) {
console.log("I got this:", jsondata)
}
Run Code Online (Sandbox Code Playgroud)
jQuery抽象回调命名的东西,所以你可以简单地使用"jsoncallback =?" 在URI中(假设服务器足够灵活,可以根据参数命名函数),并将匿名函数传递给jQuery调用.jQuery会将函数分配给自动生成的随机名称,然后用您的名称替换URI中的问号.但是,如果您正在读取静态文件(它将具有固定的函数名称,因此它无法动态更改为jQuery传递的自动生成的名称),则无法执行此操作.这是jQuery(不是我的)的一个工作示例.