Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery AJAX获取请求跨浏览器问题_Javascript_Jquery_Ajax - Fatal编程技术网

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

Javascript jquery AJAX获取请求跨浏览器问题,javascript,jquery,ajax,Javascript,Jquery,Ajax,在上面的代码中,标准类似于JSON { “公司ID”:“1”, “beginNum”:“42” } 在后端,我希望数据是一个“查询字符串参数”,我们在2年前编写了这段代码,当时运行良好。 现在,在IE和firefox的新版本中,我们无法在后端获取这些查询参数,问题在于prototype.js toQueryParams函数,它对url哈希值进行操作。在我们的例子中,我们从浏览器中获取散列值,并使用这个toQueryParams方法将其转换为对象。在firefox和IE最新版本中,哈希值为comp

在上面的代码中,标准类似于JSON { “公司ID”:“1”, “beginNum”:“42” }

在后端,我希望数据是一个“查询字符串参数”,我们在2年前编写了这段代码,当时运行良好。
现在,在IE和firefox的新版本中,我们无法在后端获取这些查询参数,问题在于prototype.js toQueryParams函数,它对url哈希值进行操作。在我们的例子中,我们从浏览器中获取散列值,并使用这个toQueryParams方法将其转换为对象。在firefox和IE最新版本中,哈希值为companyId%3D2534%26beginNum‌​%3D1%26endNum%3D6但在其他浏览器中,它像companyId=2534&beginNum一样出现‌​=1&endNum=6因此在prevus案例中,在调用方法toQueryParams之前,它不会被解码。这就是问题的根源。最后,我使用decodeURIComponent将这个散列转换成解码格式,并最终完成了它的工作。最后的结论是,如果您获取hash值并尝试将conbvert转换为toQueryParams,那么这将在最新的浏览器中引起问题


感谢大家的帮助。

dara:criteria,应该是data:criteria,具体问题是什么?控制台erors?如@ParthPatel所说,提供后端代码
daRa
=>
数据
,在补丁完成后,在FF中,在
dev tools>network
上,您收到请求了吗?您在
>控制台中是否有一些错误
?作为旁注,我会使用
cache:false
来避免在url中添加随机时间戳。不管怎样,我真的不明白你为什么要随机化它,我的意思是仅仅一个时间戳就足够了。也就是说,如果没有发布任何相关的调试信息作为错误,我看不出您希望任何人如何回答您的“问题”。顺便说一句,这个
{'companyId':'1','beginNum':'42'}
是无效的JSON符号。我认为你应该投反对票,对此我很抱歉
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);
    },