jquery ajax 200 OK JSON.ParseError
Solution 1
Try to remove contentType and dataType from Ajax parameters and let them be identified automatically
Solution 2
Had the same problem with AJAX's 'post' command.
Sent a JSON post request, got a 200 OK repsponse but textStatus was parseerror and errorThrown was SyntaxError: JSON.parse: unexpected character.
This is my JS code:
$.post(url, JSON.stringify(reportVarsJson), function(response) {}, 'json')
.fail(function(jqXHR, textStatus, errorThrown) {
alert('Error saving report request variables:\n\n' + jqXHR.responseText);
});
The problem turned out to be that my server view (Django) returned an empty response which was not a JSON response.
I changed my server view to return an empty json response and everything works well!
Admin
Updated on October 30, 2022Comments
-
Admin less than a minuteI have a control which has a textbox which, when its content changes, will tricker this javascript function:
pageparameter isdocument.URLas the control has no attached .asxc page andfieldValueis value of the textbox.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); } }); };It keeps throwing this error:
jqXHR: 200
textStatus: parsererror
errorThrown: SyntaxError: JSON.parse: unexpected characterThe code for
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; }I have tried changing
jsonin the ajax tojsonp, but same error occured.
I tried changing the format ofdata.Any ideas?