如果您想指定namejQuery 从您创建的函数的success
处理程序,但没有实际定义使用一个单独的函数, 你应该使用jsonp: 'photos'代替jsonpCallback: photos http://api.jquery.com/jQuery.ajax/。目前正在使用photos
在 URL 中,这意味着它正在调用photos({ ...data... })
当 JSONP 响应返回时,它不存在。使用jsonp选项开启$.ajax() http://api.jquery.com/jQuery.ajax/会创造它。您在这里有几个选择。
您可以通过以下两种方式之一(在全局范围内)执行此操作:
function addMarkers() {
var pm_url = "http://www.cyclestreets.net/api/photos.json?key=" + MY_KEY;
$.ajax({
url: pm_url,
crossDomain: true,
contentType: "application/json",
dataType: 'jsonp',
data: pmdata,
jsonpCallback: 'photos',
error: function() {
alert("Sorry, error retrieving photos!");
}
});
}
function photos(data) {
// TBA
}
或者,我认为你的意图是:
function addMarkers() {
var pm_url = "http://www.cyclestreets.net/api/photos.json?key=" + MY_KEY;
$.ajax({
url: pm_url,
crossDomain: true,
contentType: "application/json",
dataType: 'jsonp',
data: pmdata,
jsonp: 'photos',
success: function(data) {
// TBA
},
error: function() {
alert("Sorry, error retrieving photos!");
}
});
}
....或者只是保留两者并让 jQuery 命名success
回调本身(默认情况下会发生这种情况,基于时间戳)。