簡體   English   中英

Ajax錯誤可能是由於傳遞了不正確的數據對象

[英]Ajax Error Potentially Due to Incorrect Data Object Being Passed

嗨,我是ajax的新手,我正在嘗試將Json傳遞給數據庫,但是我還沒有那么遠。 目前,我正在嘗試驗證所傳遞的數據是否已成功完成。 但是,我總是陷入ajax錯誤方法。 我將上傳代碼,數據外觀以及錯誤。

謝謝您的幫助!

<script>
function updateTable()
{
    alert("Do i try to update table?");
    document.getElementById("testLand").innerHTML = "Post Json";
    //echo new table values for ID = x
}
function popupClick (){
    var popupObj = {};
    popupObj["Verified_By"] = $('#popupVBy').val();
    popupObj["Date_Verified"] = $('#popupDV').val();
    popupObj["Comments"] = $('#popupC').val();
    popupObj["Notes"] = $('#popupN').val();
    var popupString = JSON.stringify(popupObj);
    alert(popupString);
    $.ajax({
        type: "POST",
        dataType: "json",
        url: "popupAjax.php",
        data: popupObj,
        cache: false,
        success: function(data) 
        {
            alert("Success");
            updateTable();
        },
        error: function(data)
        {
            alert("there was an error in the ajax");
            alert(JSON.stringify(data));

        }
    });
}
</script>

var popupString中顯示的JSON正在傳遞:

JSON正在傳遞,顯示在popupString中

錯誤:

在此處輸入圖片說明

popupAjax.php文件(警告它是有害的)

<?php
echo "Testing tests are testy";
?>

您將dataType指定為json。 但這是返回的數據類型,而不是您要發送的數據類型。

您將返回html / text,因此只需刪除dataType行:

    type: "POST",
    url: "popupAjax.php",

如果確實要返回json,則需要在服務器端構建數據結構,並在最后發送它。 在您的測試用例中,它將是:

echo json_encode("Testing tests are testy");

但是您也可以發送嵌套的對象或數組。

另外需要注意的是,您可以在表單上使用.serialize() (如果使用表單...),以便jQuery自動構建一個可以在ajax方法中發送的對象。 然后,您不必手動執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM