多个AJAX调用有错误

时间:2013-03-06 14:27:07

标签: javascript ajax jquery

我正在尝试制作一个通用函数,允许我同时从不同来源获取数据。

我的解决方案基于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'不是函数

任何帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:1)

尝试将第二个调用放在第一个回调中。这应该可以解决您遇到的问题。

http://forum.jquery.com/topic/multiple-jsonp-requests-causing-errors