我正在为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的大小限制?
答案 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调用问题时,这是因为数据格式不正确。你能通过验证器运行帖子和回复吗?也许有一个角色丢失,某处有一个额外的逗号,或者遗失了一个结束标签。