Javascript jquery AJAX获取请求跨浏览器问题
在上面的代码中,标准类似于JSON { “公司ID”:“1”, “beginNum”:“42” } 在后端,我希望数据是一个“查询字符串参数”,我们在2年前编写了这段代码,当时运行良好。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
现在,在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);
},