1

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

我的解决方案基于这篇文章,最后得到了这个:

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)).')';
?>

当我对该函数进行一次调用时它工作正常,但是当我进行多次调用时(如上所述),我收到以下错误:

解析器错误:错误:未调用 myfunction

未捕获的类型错误:对象 [object Object] 的属性“myfunction”不是函数

任何帮助将不胜感激

4

1 回答 1

1

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

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

于 2013-03-06T15:08:31.517 回答