-1

我正在将 jquery ajax 发布到 php 脚本。这适用于 Chrome 19 和 Safari 5。

$.ajax({
    type:'POST',
    async:true,
    url: '/site/phpscript.php',
    data: {
            xyArray: xyArray,
            xmlDataString:xmlDataString,
            id:id
        },
    success: function(results){ alert('success'); },
    error: function()
    {
                alert('error');
    }
});

当我测试这个时,这将在 chrome 和 safari 中工作。但不在 IE 和 Firefox 中。但是.. 如果 xmlDataString 的大小很小,它将起作用。

使用 jQuery ajax 发布时,Firefox 有大小限制吗?

4

1 回答 1

0

编辑:是的,Firefox 有 4096 个字符的限制。

这里有一些解决方法: http ://forums.ext.net/showthread.php?8208-Firefox-Ajax-limit-of-4096

编辑:从那篇文章:

我创建了一个 JS 函数来处理来自 Web 服务 ajax 调用的“结果”……它在 FF 和 IE 中都有效……

就这么叫吧……

var strResult=Ext.DomQuery.selectValue("string", result, "");
function getWebSvcString(result)

{

var strResult="";

var stringElement = result.getElementsByTagName("string")[0];

if (stringElement.text!=null && stringElement!=undefined){

strResult=stringElement.text;

// alert("IE: "+strResult.length);

}


else if (stringElement.textContent!=null && stringElement.textContent!=undefined)

{

strResult=stringElement.textContent;

// alert("FF: "+strResult.length);


}

return strResult;

}

另外,我会将 Post 排除在外,因为它是默认设置。它只会让你的代码更干净。此外,我会在您的 Ajax 调用中的错误事件响应中添加一条错误消息。这也可能提供线索。

$.ajax({
    async:true,
    url: '/site/phpscript.php',
    data: {
            xyArray: xyArray,
            xmlDataString:xmlDataString,
            id:id
        },
    success: function(results){ alert('success'); },
    error: function(xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);

    }
});

根据我的经验,当浏览器遇到 Ajax 调用问题时,是因为数据格式不正确。您可以通过验证器运行帖子和响应吗?可能缺少字符、某处多余的逗号或缺少结束标记。

于 2012-06-08T01:22:41.000 回答