easyXDM 2.4.17 を使用しています。jQueryを使用してAJAX呼び出しを行うリモート「tunnel.html」でRPCをセットアップしました。
最新のすべてのブラウザー (postMessage を使用するブラウザー) では、すべて正常に動作しています。ie7 でテストすると、easyXDM は HashTransport にフォールバックし、AJAX 応答がまったく表示されないことを除けば、すべて正常に動作します。リクエストが実際に問題なく戻ってきていることがわかりますが、何らかの理由でコールバックが発生していません。
私の tunnel.html ファイルは次のようになります。
<!DOCTYPE html>
<html>
<!--[if lt IE 9]>
<script type="text/javascript" language="javascript" src="https://mydomain.net/json2.min.js"></script>
<![endif]-->
<script src="https://mydomain.net/easyXDM-2.4.17.js"></script>
<script src="https://mydomain.net/jquery-1.10.2.min.js"></script>
<script>
function apiTunnel (endpoint, params, method, callback) {
var options = {
url: endpoint,
data: params,
type: method,
complete: function (xhr) {
var response = {};
try {
response.data = JSON.parse(xhr.responseText);
} catch (ex) {
response.error = xhr.responseText;
}
callback(response);
}
};
jQuery.ajax(options);
}
var rpc = new easyXDM.Rpc({}, {local: { apiTunnel: apiTunnel }, serializer: JSON});
</script>
</html>
更新:いくつかのデバッグの後、応答がキューでスタックしているように見えます。トンネル側は、ホスト ページからのイメージで失敗しています。これはキューを詰まらせ、AJAX 応答を通過させません。何か案は?
UPDATE 2待機中のロックを削除し、2秒後にキューをディスパッチするようにタイマーを設定すると、機能します。私はこれについて気分が良くありませんが、うまくいきます。最初の呼び出しが失敗する理由がわかりません。できれば根本的な問題を修正したいのですが、根本的な問題が何であるかを完全に理解しているかどうかはわかりません。