成功功能未被执行

时间:2015-06-26 18:27:00

标签: javascript jquery ajax

我正在进行一次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

3 个答案:

答案 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(/ *你的服务器响应* /)来测试它是否正常工作以及是否有任何其他错误。