0

Ajax调用成功。我看到了JSON回应。但是fieldValidated当消息返回是success.

Spring在后面使用

JSON回复'{ "valid" : "false", "message" : "Some message" }'

   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);
        }
    });
    }

控制台日志

Uncaught SyntaxError: Unexpected token o jquery-1.10.1.js:550
x.extend.parseJSON jquery-1.10.1.js:550 
$.ajax.error X.htm:115
c jquery-1.10.1.js:3074
p.fireWith jquery-1.10.1.js:3186 
k jquery-1.10.1.js:8255
r
4

3 回答 3

2

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

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

那么您需要删除单引号,因为它们不需要向 JavaScript 指示它是一个字符串并且不是有效的 JSON(字符串包含在双引号中)。

于 2013-09-03T08:42:10.287 回答
1

您在控制台中看到的错误表明,jquery 需要一个 mime 类型的 JSON。

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

这篇文章解释了它。

另一方面,您的 JSON 输出也需要有效,

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

于 2013-09-03T08:47:01.027 回答
0

如果您的 JSON 调用返回一个像您这样的数组,则您必须专门调用您需要的内容。

fieldValidated("someId", data.message);

那可能是你的问题。

于 2013-09-03T08:14:51.757 回答