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 minute
I have a control which has a textbox which, when its content changes, will tricker this javascript function:
page
parameter isdocument.URL
as the control has no attached .asxc page andfieldValue
is 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
json
in the ajax tojsonp
, but same error occured.
I tried changing the format ofdata
.Any ideas?