41202197514
小狐狸
小狐狸
  • UID39468
  • 注册日期2013-05-04
  • 最后登录2013-05-06
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:5825回复:11

firefox 无法提交jquery ajax 请求,IE,chrome 可以

楼主#
更多 发布于:2013-05-04 09:14
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请求无法提交
idragonet
千年狐狸
千年狐狸
  • UID15658
  • 注册日期2006-11-12
  • 最后登录2017-11-15
  • 发帖数2642
  • 经验162枚
  • 威望1点
  • 贡献值74点
  • 好评度118点
  • 社区居民
1楼#
发布于:2013-05-04 09:14
我开发的网站jQuery 1.9.1 AJAX请求在Firefox 22a下正常。
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
2楼#
发布于:2013-05-04 09:14
21b3表示没问题!
-いたんですか? -ええ、ずっと
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2024-05-16
  • 发帖数634
  • 经验580枚
  • 威望0点
  • 贡献值110点
  • 好评度104点
3楼#
发布于:2013-05-04 09:14
22a2可以删除

图片:Screenshot.png


有错误提示,但不影响
41202197514
小狐狸
小狐狸
  • UID39468
  • 注册日期2013-05-04
  • 最后登录2013-05-06
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
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
    });
}
yfdyh000
千年狐狸
千年狐狸
  • UID29079
  • 注册日期2009-06-07
  • 最后登录2022-05-18
  • 发帖数2262
  • 经验1390枚
  • 威望0点
  • 贡献值52点
  • 好评度139点
  • 社区居民
  • 最爱沙发
  • 忠实会员
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', '}'
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2024-05-16
  • 发帖数634
  • 经验580枚
  • 威望0点
  • 贡献值110点
  • 好评度104点
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就直接把请求中断了
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
7楼#
发布于:2013-05-04 09:14
taoww:彻底搞清楚是怎么一回事了

在edit.js里有这么一段东西

buttons: 
            {
                '确定': function()
                {
                    $(this).dialog("close");
                    removeFile(treeNode);
                    location.reload();
                    //setTimeout(function(){location.reload();} , 100);
                },


问题就出在那个location.reload()上。ajax请求还在后台发送,这边就让刷新页面,新版本的firefox就直接把请求中断了
回到原帖



囧……一般来说后续操作都应该放在回调里面吧
-いたんですか? -ええ、ずっと
41202197514
小狐狸
小狐狸
  • UID39468
  • 注册日期2013-05-04
  • 最后登录2013-05-06
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2013-05-04 09:14
soga 问题确实是出在这,然后问题是,以前的版本可以,其他浏览器可以,这个是firefox特立独行呢,还是其他都是歪货?!!!
taoww
非常火狐
非常火狐
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2024-05-16
  • 发帖数634
  • 经验580枚
  • 威望0点
  • 贡献值110点
  • 好评度104点
9楼#
发布于:2013-05-04 09:14
41202197514:soga 问题确实是出在这,然后问题是,以前的版本可以,其他浏览器可以,这个是firefox特立独行呢,还是其他都是歪货?!!!回到原帖


判断浏览器的行为有没有问题并不是看是否和其他浏览器一样,而是看是否符合标准。比如今年年初爆出的localstorage存储漏洞,各大浏览器中只有firefox没有中招,就因为其他浏览器都没有完整的实现相关标准。

而没有任何标准规定了浏览器在reload时的具体行为,所以浏览器爱怎么做都没问题。而且从逻辑上讲,既然都要求reload了,也就是要重新发起连接,终止当前页面上已有的全部连接也是很正常的行为。
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
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);
                 }
         }
-いたんですか? -ええ、ずっと
dindog
千年狐狸
千年狐狸
  • UID30818
  • 注册日期2009-10-24
  • 最后登录2023-02-03
  • 发帖数1195
  • 经验59枚
  • 威望0点
  • 贡献值26点
  • 好评度10点
11楼#
发布于:2013-05-04 09:14
https://g.mozest.com/viewthread.php?tid ... #pid287877

这个问题我以前遇到过。我印象中也报告了这个问题了。
以前firefox跳个票的时间现在可以发布几个正式版了-_-
游客

返回顶部