var jqxhr = $.post(url, $("#saveShipAdrs").serialize(), function(response) {
// set form values to view
var fld;
$('#editShipAdrs input[name*="Livraison"]').each(function(){
fld = "#show"+$(this).attr("name");
$(fld).html($(this).val());
});
// set success message
$(".success").html("Shipping address updated");
})
.error(function(xhr, ajaxOptions, thrownError) {
$(".error").html("Shipping address cannot be updated");
alert(xhr.status+"\n"+xhr.statusText+"\n"+thrownError);
});
});
此处“saveShipAdrs”是表单的ID。
此代码在FF中运行良好,但在IE中运行不正常。 在IE中它给出了
xhr.status = 0
xhr.statusText = error
thrownError = Invalid Argument
我试过serializeArray
并试图寻找其他类似的问题,但没有找到解决方案。
答案 0 :(得分:0)
Dr.Molle建议,当因为不同的域而取消请求时,将返回状态0。
问题在于,我将表单标记的action属性保留为空以在self(action =“”)上提交。
这并不意味着域名不同,但是当我将当前页面的URL放在action属性中时,问题就解决了。
如果有人想详细解释空行动的确切问题,我们将不胜感激。
答案 1 :(得分:0)
jquery有IE 10(标准/ Quirks模式)的错误,.serialize()和.serizlizeArray()无法序列化表单数据。
<div id="showRole">
<form>
<input name="roleName" type="text" />
<input name="des" type="text" />
</form>
</div>
修复方法是:var data = $(“#showRole input”)。serialize();使用div的id引用表单并序列化数据。
IE只是更改了DOM树,而jquery无法获取元素。