Javascript $.ajaxjsonp回调函数的工作原理
我正在用它来获取数据。这是根据下面的代码生成的Javascript $.ajaxjsonp回调函数的工作原理,javascript,jquery,json,ajax,callback,Javascript,Jquery,Json,Ajax,Callback,我正在用它来获取数据。这是根据下面的代码生成的 function sendRequest() { var parms = "format=JSONP"; // Other parameters //parms += "&lang=en-us&actors=S"; $("#countries").text(""); $("#actors").text(""); $.ajax({ data: parms
function sendRequest() {
var parms = "format=JSONP";
// Other parameters
//parms += "&lang=en-us&actors=S";
$("#countries").text("");
$("#actors").text("");
$.ajax({
data: parms,
url: 'http://www.myapifilms.com/imdb/inTheatres',
type: 'get',
dataType: 'jsonp',
beforeSend: function () {alert(this.url);},
success: function (response, textStatus, jqXHR) {
$.each(response, function(index, element){
if (element.directors != undefined) {
$.each(element.directors, function(index, director){
$("#directors").append(director.name + ", ");
});
}
if (element.title != undefined) {
$.each(element.title, function(index, title){
$("#movies").append(title + ", ");
});
}
});
},
error: function(jqXHR, textStatus, errorThrown) {
$("#error").text(textStatus + "; " + errorThrown);
}
});
}
这里的问题是我越来越容易出错;错误:未调用jQuery1113009284638670545353_1442120413250
我只是在玩参数中传递值的游戏,可以看出这很好。然而,事实并非如此
从后一个查询中可以看到,应用程序似乎正在返回默认回调。那么,如何在ajax请求中使用默认回调来访问它所拥有的数据呢?请帮助我实现同样的目标。提前谢谢
在这里找到我的工作|我想您可以创建一个名为myapifilms的本地函数来处理响应 类似这样的东西,它应该会自动被调用
function myapifilms(response) {
$.each(response, function(index, element){
if (element.directors != undefined) {
$.each(element.directors, function(index, director){
$("#directors").append(director.name + ", ");
});
}
if (element.title != undefined) {
$.each(element.title, function(index, title){
$("#movies").append(title + ", ");
});
}
});
}
@Jaromanda X是怎么说的,这是一个bug。在任何情况下,您的代码的URL都是错误的,您的In-Atres和In-Atres在re和er之间不匹配。我测试此代码并运行:
function submit() {
var url = "http://www.myapifilms.com/imdb/inTheaters";
$.ajax({
data: 'format=JSONP',
url: url,
dataType: 'jsonp',
jsonpCallback: "myapifilms",
success: function (response, textStatus, jqXHR) {
$.each(response, function(index, element){
if (element.directors != undefined) {
$.each(element.directors, function(index, director){
$("#results").append(director.name + ", ");
});
}
});
},
error: function(jqXHR, textStatus, errorThrown) {
$("#error").text(textStatus + "; " + errorThrown);
}
});
}
function myapifilms(response) {
$.each(response, function(index, element){
if (element.directors != undefined) {
$.each(element.directors, function(index, director){
$("#results").append(director.name + ", ");
});
}
});
}
注:我是网站的创建者,我建议你迁移到版本2
编辑:
版本2中的调用示例:
function submit() {
var url = "http://www.myapifilms.com/imdb/inTheaters";
var params = {
token: 'YOUR_TOKEN',
format: 'json',
callback: 'myapifilms'
};
$.ajax({
url : url,
data : params,
type : 'get',
dataType : 'jsonp',
jsonpCallback: 'myapifilms'
});
}
function myapifilms(json) {
alert(json.data.inTheaters[0].openingThisWeek);
}
在json变量中,您拥有所有信息。将jsonpCallback:“myapifilms”添加到ajax调用中-编辑:hmmm,似乎不起作用耶。。。是的。。我也试过了。可能是因为这个请求网站被破坏了-你试过联系网站所有者吗?嗨,阿尔贝托,这在版本2中是什么样子的