JQuery Ajax的成功并未得到执行

时间:2013-09-03 08:09:31

标签: jquery

Ajax致电成功。我看到了JSON回复。但是当消息返回fieldValidated时,有些方法{@ 1}}没有被调用。

在后面使用success

Spring回复JSON

'{ "valid" : "false", "message" : "Some message" }'

CONSOLE.LOG

   function thisMethodIsCalledOnCursorOutFromInputField() {
    $.ajax({
        url: '${pageContext. request. contextPath}/X.htm',
        data: {
            someId: $('#someId').val()
        },
        contentType: "*/*",
        dataType: "json", //Have also tried with "text"
        success: function (data) {
            console.log('response=', data);
            fieldValidated("someId", data);
        },
        error: function (data) {
            console.log('response=', data);
            fieldValidated("emailId",data);
        }
    });
    }

3 个答案:

答案 0 :(得分:2)

错误消息表明来自服务器的响应不是有效的JSON。如果答案是字面意思

'{ "valid" : "false", "message" : "Some message" }'

然后您需要删除单引号,因为他们没有必要向JavaScript表明它是一个字符串并且不是有效的JSON(字符串包含在双引号中) )。

答案 1 :(得分:1)

您在控制台中看到的错误表明,jquery期待mime类型JSON。

您需要将内容类型设置为application/json

This帖子解释了它。

另一方面,您的JSON输出也必须有效,

您可以使用JSONlint检查JSON输出的有效性。您也可以从本地http服务器下载并运行它

答案 2 :(得分:0)

如果您的JSON调用返回与您类似的数组,则必须专门调用所需内容。

fieldValidated(“someId”,data.message);

这可能是你的问题。