jquery AJAX获取请求跨浏览器问题

时间:2015-12-09 09:20:35

标签: javascript jquery ajax

searchCompanyExecutives: function(criteria, callback) {
        var params = $j.extend({
            type: "GET",
            dara: criteria,
            url: "/wa/rs/company_executives?random=" + Math.floor(Math.random() * (new Date()).getTime() + 1),
            dataType: "json"
        }, callback);

        $j.ajax(params);
    },

并且在上面的代码标准中就像一个JSON     {         ' companyId':' 1&#39 ;,         ' beginNum':' 42'     }

在后端,我期待数据作为"查询字符串参数"我们在2年前编写了这段代码,当时工作正常。 现在在新版本的IE和Firefox中,我们无法在后端获取这些查询参数

1 个答案:

答案 0 :(得分:0)

问题在于prototype.js toQueryParams函数,该函数对url哈希值进行操作。在我们的例子中,我们从浏览器中获取哈希值,并使用此toQueryParams方法将其转换为对象。在firefox和IE最新版本中哈希值是 companyId%3D2534%26beginNum%3D1%26endNum%3D6 ,但在其他浏览器中它的出现就像 companyId = 2534& beginNum = 1& endNum = 6 所以在调用方法toQueryParams之前,不能解码它的例子。所以这导致了这个问题。最后,我使用decodeURIComponent以解码格式转换此哈希,最后使用它。最后的结论是,如果你采用哈希值并尝试转换为toQueryParams,那么这会导致最新浏览器出现问题。

感谢大家的帮助。