さまざまなソースから同時にデータを取得できる汎用関数を作成しようとしています。
私はこの投稿に基づいてソリューションを作成し、最終的には次のようになりました。
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)).')';
?>
関数を 1 回呼び出すと問題なく動作しますが、(上記のように) 複数の呼び出しを行うと、次のエラーが発生します。
parsererror: エラー: myfunction が呼び出されませんでした
キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] のプロパティ 'myfunction' は関数ではありません
どんな助けでも大歓迎です