我正在使用easyXDM 2.4.17。 我使用远程'tunnel.html'设置了RPC,它使用jQuery进行AJAX调用。
对于所有现代浏览器(具有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>
UPDATE:经过一些调试后,看起来我的响应卡在了队列中。隧道侧在主机页面上的图像上失败。这会堵塞队列,永远不会让我的AJAX响应通过。有什么想法吗?
UPDATE 2 如果我设置一个计时器来移除等待锁并在2秒后调度队列就可以了。 我对此感觉不是很好,但确实有效。我不确定为什么初始调用失败 - 如果可能的话,我宁愿修复root问题,我只是不确定我是否完全理解根本问题是什么。