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>
JSON 正在通过 var popupString:
错误:
popupAjax.php 文件(警告它很暴躁)
<?php
echo "Testing tests are testy";
?>
您将 dataType
指定为 json。但这是 returned 数据类型,而不是您发送的数据类型。
您正在 returning html / 文本,因此您可以删除 dataType
行:
type: "POST",
url: "popupAjax.php",
如果您确实想要 return json,您需要在服务器端构建数据结构并在最后发送。在您的测试用例中,它只是:
echo json_encode("Testing tests are testy");
但您也可以发送嵌套对象或数组。
作为附加说明,您可以在表单上使用 .serialize()
(如果您使用表单...),这样 jQuery 会自动构建一个对象,您可以在 ajax 方法。那么您就不必手动执行此操作了。
您好,我是 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>
JSON 正在通过 var popupString:
错误:
popupAjax.php 文件(警告它很暴躁)
<?php
echo "Testing tests are testy";
?>
您将 dataType
指定为 json。但这是 returned 数据类型,而不是您发送的数据类型。
您正在 returning html / 文本,因此您可以删除 dataType
行:
type: "POST",
url: "popupAjax.php",
如果您确实想要 return json,您需要在服务器端构建数据结构并在最后发送。在您的测试用例中,它只是:
echo json_encode("Testing tests are testy");
但您也可以发送嵌套对象或数组。
作为附加说明,您可以在表单上使用 .serialize()
(如果您使用表单...),这样 jQuery 会自动构建一个对象,您可以在 ajax 方法。那么您就不必手动执行此操作了。