1

我发现 Internet Explorer 9 和 Internet Explorer 8 Comp(到目前为止)与 jQuery 插件 jCryption 存在问题。在所述 IE 版本中第一次调用该页面可以正常工作。对页面的后续调用只会调用握手,而忽略密钥对生成。问题是这些版本的 IE 如何处理缓存。

我查看了 jCryption 的源代码,这里是调用密钥对生成的代码集:

/**
* Gets the data from the specified url, and converts it into a RSA keypair
* @param {string} url The URL to contact
* @param {string} data The JSON data
*/
$.getJSON(url, function(data) {
                var keys = new jCryptionKeyPair(data.e, data.n, data.maxdigits);
                if($.isFunction(callback)) {
                        callback.call(this, keys);
                }
        });

我将它的请求从 GET 更改为 POST,这有效地禁用了此请求的缓存。

$.ajax({
        url: url,
        dataType: 'json',
        type: "POST",
        success: function(data) {
                         var keys = new jCryptionKeyPair(data.e, data.n, data.maxdigits);
                         if ($.isFunction(callback)) {
                                 callback.call(this, keys);
                         }
                 }
        });

握手代码类似,因为它也发出一个 jQuery Ajax POST 请求。

4

0 回答 0