gpt4 book ai didi

php - $.ajax 错误无法捕获 php 抛出的异常

转载 作者:行者123 更新时间:2023-12-01 04:53:52 24 4
gpt4 key购买 nike

$.ajax({
type: "POST",
url: "functions/add_vendor.php",
data:
{
vendor_info_json : vendor_info_json
},
success:function(result)
{
alert('Successfully Done.')
location.reload();
},
error: function(jqXHR, textStatus, errorThrown){
alert('Error Message: '+ textStatus);
alert('HTTP Error: '+ errorThrown);
}
})

这是我正在处理的 jquery 代码。以下是正在调用的 add_vendor.php 文件。

<?php
include_once('../models/VENDOR_DB_MANAGER.php');

$vendor_info_json = $_REQUEST["vendor_info_json"];
$DB = new VENDOR_DB_MANAGER();
$DB->connectTo('BBY');
try
{
//This ALWAYS returns false to test the code.
if($DB->insertDataToTable('mfVendor', $vendor_info_json))
{
$DB->disconnect();

header('Content-Type: application/json');
$data = json_encode($result);
echo $data;
}
else
{
throw new Exception("Error has been detected.");

}
}
catch (Exception $e)
{
header("HTTP/1.1 500 Internal Server Error");
echo "Exception occurred: " . $e->getMessage();
}
?>

好的,对于测试 $.ajax 的错误处理代码,“if($DB->insertDataToTable('mfVendor', $vendor_info_json))”部分始终为 false。无论我做什么,即使 php 代码始终抛出异常, error:callback 也不起作用。

我在这里缺少什么问题? :(

最佳答案

当你的服务器抛出内部服务器错误时,从 Javascript 方面来看它仍然是成功的。在您的 success 函数中,您必须检查响应的状态代码,并进行相应的处理。

关于php - $.ajax 错误无法捕获 php 抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16472116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com