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

Console.log

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" }'

それが文字列であり、有効な JSON ではないことを JavaScript に示す必要がないためです (文字列は二重引用符で囲まれています)。

于 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 に答える