我正在尝试制作一个通用函数,允许我同时从不同来源获取数据。
我的解决方案基于this帖子,最后得到了这个:
var servicesURL = 'http://www.somedomain.com/services/xml_proxy.php?url=';
function getExternalData(service, callback) {
$.ajax({
type: 'GET',
url: servicesURL+service,
dataType: 'jsonp',
jsonpCallback: 'myfunction',
success: function(data) { callback(data); },
error: function(jqXHR, textStatus, errorThrown) { console.log(textStatus+': '+errorThrown); }
});
}
getExternalData('data1.xml', function(data) {
console.log(data)
});
getExternalData('data2.xml', function(data) {
console.log(data)
});
这是我正在使用的代理的代码:
<?php
header('Content-type: application/json');
$url = $_GET['url'];
echo 'myfunction('.json_encode(simplexml_load_file($url)).')';
?>
当我对该函数进行一次调用时它工作正常,但是当我进行多次调用时(如上所述),我得到以下错误:
parsererror:错误:未调用myfunction
未捕获TypeError:对象[object Object]的属性'myfunction'不是函数
任何帮助都将受到高度赞赏
答案 0 :(得分:1)
尝试将第二个调用放在第一个回调中。这应该可以解决您遇到的问题。
http://forum.jquery.com/topic/multiple-jsonp-requests-causing-errors