0

我可以获得 2 个响应标头来处理。看到底。

问题:

如果我得到 JSON 响应而不是需要执行postValidation函数来处理 JSON,但如果它是 html 则不执行。我可以解决这个检查 html 标记以停止执行,但寻找任何干净的方法来检查返回的响应是有效的 JSON 并在 AJAX 调用中停止函数执行。

getValidationErrors总是返回 NULL。不知道为什么。如果你能告诉我有什么问题,请。

 $.ajax({
                        url: url,
                        type: 'POST',
                        data: viewData,
                        //dataType: "json",
                        cache: false,
                        complete: postValidation,
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            console.log("error :"+XMLHttpRequest.responseText);
                        }
                       /* ,
                        success: function (data) {
                            $("#status").html('name = ' + data.name + ', age = ' + data.age);
                        }*/
                    });

function postValidation(request) {
                clearValidationErrors();

                var text = request.responseText;
                var errorsObject = getValidationErrors(text);

                //var errorsObject = JSON.parse(request.responseText);
            };


var getValidationErrors = function(data) {
                if (typeof data === "object") {
                    alert("1");
                    return data;
                }
                else {
                    if (data.indexOf("/* {") === 0) {
                        alert("2");
                        return eval("( " + data.substring(2, data.length - 2) + " )");
                    } else {
                        alert("3");
                        return null;
                    }
                }
            };

请求 1:响应标头

Content-Type    application/json;charset=UTF-8

{ "fieldErrors": {"name":["You must enter your name"],"age":["Only people ages 13 to 19 may take this quiz"]}}

请求 2:响应标头

Content-Type    text/html;charset=UTF-8

<html>
<head>
    <title></title>
</head>
<body>

</body>
</html>
4

0 回答 0