ajax帖子,firefox和IE不会工作

时间:2012-06-07 23:52:11

标签: jquery ajax firefox

我正在为php脚本制作一个jquery ajax帖子。这适用于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的大小限制?

1 个答案:

答案 0 :(得分: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;

}

另外,我会把帖子留出来,因为它是默认的。它只会使你的代码更清洁。另外,我会在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调用问题时,这是因为数据格式不正确。你能通过验证器运行帖子和回复吗?也许有一个角色丢失,某处有一个额外的逗号,或者遗失了一个结束标签。