没有触发HashTransport回调的easyXDM rpc

时间:2013-08-07 17:00:54

标签: javascript jquery internet-explorer-7 easyxdm

我正在使用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问题,我只是不确定我是否完全理解根本问题是什么。

0 个答案:

没有答案