我对ashx处理程序的每次调用都会导致我在Firefox中找到“无元素发现”错误,但我的网站在执行对该处理程序的调用时不会崩溃。我还得到一个“HierarchyRequestError:节点不能插入层次结构中的指定点”。下面是给我这两个错误的代码:
$.post("checkout_model.ashx?a=CheckSession", function (data) {
// if session is still available
alert(data);
if ($.trim(data).length > 0) {
$.post("checkout_model.ashx?a=SaveAddress", $("#addressdetails").serialize(), function (data) {
$("#addressresult p.result").remove();
$("#addressresult").prepend(data);
});
storeCookies();
// update orderdetails
$.post("checkout_model.ashx?a=GetCartContent", function (data) {
$("#orderdetails").html(data);
});
var address = $("#AddressLine1").val();
if ($("#AddressLine2").val() != "") address += ", " + $("#AddressLine2").val();
address += ", " + $("#Suburb").val();
$("#tabaddress").text("Step 1: Modify Address: " + address);
$("#accordion").accordion("option", "active", 1);
$("#tabaddress").addClass("modifyaddress");
$("#tabpayment").removeClass("disabled"); // enable step 3
} else {
$("#addressdetails").html("<p class='error'>Your order has timed out. You will need to <a href='viewcart.aspx'>select the items</a> to purchase again.</p>")
}
});
答案 0 :(得分:1)
如果您的ajax响应包含值为“text / xml”的“Content-Type”标头,则Firefox希望响应是具有单个根元素的有效XML。如果不是,Firefox会发出“找不到元素”错误。
对于第二个错误,可能是在以下任一行中,“data”的值无效HTML或包含<html>
或<body>
等标记:
$("#addressresult").prepend(data);
$("#orderdetails").html(data);
答案 1 :(得分:-1)
添加responseType
请求。
var xhr = new XMLHttpRequest();
xhr.open('POST', '...', true);
xhr.responseType = 'json';
有关详细信息,请参阅此处: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType