5

コンテンツが変更されると、このJavaScript関数をだますテキストボックスを持つコントロールがあります。

pageパラメータはdocument.URL、コントロールに添付された .asxc ページがなくfieldValue、テキスト ボックスの値であるためです。

function UpdateFieldsOnListSelection(page, fieldValue) {
    $.ajax({
        type: "POST",
        url: page + "/IsSelectedListPictureLibrary",
        data: { "libraryInfo": fieldValue },
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            alert("Success!");
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert("jqXHR: " + jqXHR.status + "\ntextStatus: " + textStatus + "\nerrorThrown: " + errorThrown);
        }
    });
};

このエラーがスローされ続けます:

jqXHR: 200
textStatus: parsererror
errorThrown: SyntaxError: JSON.parse: 予期しない文字

のコードIsSelectedListPictureLibrary:

[WebMethod]
public static bool IsSelectedListPictureLibrary(string libraryInfo)
{
    if (string.IsNullOrEmpty(libraryInfo)) return false;

    var common = new Utility();
    var storedLibraryInfo = common.GetStoredLibraryInfo(libraryInfo);

    if (storedLibraryInfo == null) return false;

    var web = SPContext.Current.Site.OpenWeb(storedLibraryInfo.WebId);
    var spList = web.Lists[storedLibraryInfo.LibraryId];

    if (spList.BaseTemplate == SPListTemplateType.PictureLibrary)
    {
        web.Dispose();
        return true;
    }

    web.Dispose();
    return false;
}

jsonajax を に変更してみjsonpましたが、同じエラーが発生しました。
のフォーマットを変更してみましたdata

何か案は?

4

3 に答える 3

22

Ajax パラメータからとを削除contentTypeして、それらを自動的に識別できるようにしてくださいdataType

于 2013-04-15T10:40:47.803 に答える
1

AJAX の「post」コマンドにも同じ問題がありました。

JSON 投稿リクエストを送信し、200 OK 応答を取得しましたが、textStatus は でparseerror、errorThrown は でしたSyntaxError: JSON.parse: unexpected character

これは私のJSコードです:

$.post(url, JSON.stringify(reportVarsJson), function(response) {}, 'json')
.fail(function(jqXHR, textStatus, errorThrown) {
    alert('Error saving report request variables:\n\n' + jqXHR.responseText);
});

問題は、サーバー ビュー (Django) が JSON 応答ではない空の応答を返したことであることが判明しました。

サーバービューを変更して、空の json 応答を返すようにしましたが、すべてうまくいきました!

于 2014-04-24T13:19:11.483 に答える