阅读:5828回复:11
firefox 无法提交jquery ajax 请求,IE,chrome 可以
Firefox 16, Firefox 17 下开发的Web程序,在Firefox 18, Firefox 19, Firefox 20, Firefox 21b3, Firefox 22a2 无法正常工作 Firefox 18, Firefox 19, Firefox 20, Firefox 21b3, Firefox 22a2 无法提交Ajax请求 其他浏览器IE,Chrome 可正常运行功能是一个文件管理器,实现文件和目录的新建,重命名和删除,新建和重命名都可以使用。这里实现的是文件和目录的删除,在其他浏览器下也可以实现文件和目录的删除,在firefox16,17下同样可以,但在Firefox 18, Firefox 19, Firefox 20, Firefox 21b3, Firefox 22a2 ,ajax请求会执行error回调,参数无法传到后台 只是删除不行,新建和重命名可以
测试地址:http://www.paperscloud.com/PapersCloud/login.jsp 操作方法:使用firefoxtest,firefoxtest登陆,然后点击左侧的命令式编辑,然后将鼠标 移动到中间的文件树叶子节点上,点击出现的红色X,删除文件节点, 效果显示:在firefox16,17,下可以删除,在IE9,chrome26下可以删除,在Firefox 18, Firefox 19, Firefox 20, Firefox 21b3, Firefox 22a2下无法删除,ajax请求无法提交 |
|
1楼#
发布于:2013-05-04 09:14
我开发的网站jQuery 1.9.1 AJAX请求在Firefox 22a下正常。
|
|
|
2楼#
发布于:2013-05-04 09:14
21b3表示没问题!
|
|
|
3楼#
发布于:2013-05-04 09:14
22a2可以删除
图片:Screenshot.png 有错误提示,但不影响 |
|
4楼#
发布于:2013-05-04 09:14
图片:无标题.png 白左:21b3表示没问题!回到原帖 这个是删除文件夹,删除文件夹是可以的,但删除文件不行,,firefox 16,17是可以的,这是去年开发的,今年发现不能用了,IE和chrome 是可以的 function removeNode(url, param) { $.ajax( { type: "post", url: url, data: param, error: function() { //alert("服务器请求出错,请重试!"); dialogAlert("提示", "服务器请求出错,请重试!"); }, success: function(respdata) { eval("var data = " + respdata); if (data.success == "true") { return true; } else { //alert(data.msg); dialogAlert("提示", data.msg); return false; } } }); } function removeFile(treeNode) { removeNode("file!deleteFile.action", { id: treeNode.id, path: treeNode.path }); } |
|
5楼#
发布于:2013-05-04 09:14
[17:32:58.934] 语法错误 @ http://www.paperscloud.com/PapersCloud/ ... a.action:1
返回的JSON内容,在 http://jsonlint.com/ 校验提示有错误。 Parse error on line 2: [ { 'id': '0', ' --------------^ Expecting 'STRING', '}' |
|
6楼#
发布于:2013-05-04 09:14
彻底搞清楚是怎么一回事了
在edit.js里有这么一段东西 buttons: { '确定': function() { $(this).dialog("close"); removeFile(treeNode); location.reload(); //setTimeout(function(){location.reload();} , 100); }, 问题就出在那个location.reload()上。ajax请求还在后台发送,这边就让刷新页面,新版本的firefox就直接把请求中断了 |
|
7楼#
发布于:2013-05-04 09:14
|
|
|
8楼#
发布于:2013-05-04 09:14
soga 问题确实是出在这,然后问题是,以前的版本可以,其他浏览器可以,这个是firefox特立独行呢,还是其他都是歪货?!!!
|
|
9楼#
发布于:2013-05-04 09:14
41202197514:soga 问题确实是出在这,然后问题是,以前的版本可以,其他浏览器可以,这个是firefox特立独行呢,还是其他都是歪货?!!!回到原帖 判断浏览器的行为有没有问题并不是看是否和其他浏览器一样,而是看是否符合标准。比如今年年初爆出的localstorage存储漏洞,各大浏览器中只有firefox没有中招,就因为其他浏览器都没有完整的实现相关标准。 而没有任何标准规定了浏览器在reload时的具体行为,所以浏览器爱怎么做都没问题。而且从逻辑上讲,既然都要求reload了,也就是要重新发起连接,终止当前页面上已有的全部连接也是很正常的行为。 |
|
10楼#
发布于:2013-05-04 09:14
41202197514:soga 问题确实是出在这,然后问题是,以前的版本可以,其他浏览器可以,这个是firefox特立独行呢,还是其他都是歪货?!!!回到原帖 你的写法也不太标准吧,一般来说异步调用后面不要接同步操作 可以给你的removeFile加个参数,变成类似这样 '确定': function() { $(this).dialog("close"); removeFile(treeNode, function(args){location.reload();}); } ... ... removeFile = function(node, callback){ // REMOVE NODE if(typeof callback === "function"){ callback(args); } } |
|
|
11楼#
发布于:2013-05-04 09:14
|
|
|