我正在进行一次ajax调用,以便从我在控制台中看到的数据库中获取一条记录,表明它已成功返回记录但成功是否正在执行。
function ajaxForParent() {
var search = document.getElementById("resourceId").value;
var folderId = document.getElementById("folderId").value;
$.ajax({
type : "GET",
contentType : 'application/json; charset=utf-8',
dataType : 'json',
url : "/admin/content/changeParent",
data : {search : search, folderId : folderId}, // Note it is important
success : function(folder) {
alert(folder);
if (folder.id == document.getElementById("folderId").value) {
$("#parentAvailable").html("Children Limit exceeding you cannot add more than 9 levels children");
return false;
}
console.log(folder.id);
console.log(document.getElementById("folderId").value);
if (folder.id != document.getElementById("folderId").value) {
console.log("I am coming here " +folder.id);
var s = document.getElementById("folderId");
s.value = folder.id;
}
$("#parentAvailable").html("Parent Found Successfully!");
},
error : function(content) {
$("#parentAvailable").html("Parent Not available");
}
});
}
我已尝试使用上面的内容,即使记录从服务器端成功返回,也始终输入错误功能。谁能告诉我这里我做错了什么?
当我抛出错误时,我得到了这个
SyntaxError: JSON.parse: end of data after property value in object at line 1 column 1587309 of the JSON data
答案 0 :(得分:3)
您无法通过 GET 发送json
数据。
您需要使用 POST :
$.ajax({
type : "POST", // <------ Use POST
contentType : 'application/json; charset=utf-8',
dataType : 'json',
url : "/admin/content/changeParent",
data : {search : search, folderId : folderId},
如果您的应用/admin/content/changeParent
仅接受GET,则可能需要考虑将其更改为接受POST。否则,您的应用无法通过GET正确接收您发送到服务器的JSON数据。
答案 1 :(得分:0)
看起来响应中包含格式不正确的json数据。尝试将响应复制到json linter(例如http://jsonlint.com/)以查找问题。
答案 2 :(得分:0)
接受服务器的回答并将其粘贴到某些json linter(如http://jsonlint.com/)中,以确保jquery可以将其转换为有效的响应。
您还可以在错误回调中添加断点,并检查当时返回的错误和值。当你在那里时,如果收到的数据是一个字符串而不是一个对象,尝试调用JSON.parse(/ *你的服务器响应* /)来测试它是否正常工作以及是否有任何其他错误。