firebug:在执行对ashx处理程序的jquery ajax调用时出现“找不到元素”错误

时间:2013-06-26 00:10:01

标签: asp.net jquery ashx

我对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>")
                    }
                });

2 个答案:

答案 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