$.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();
}
?>
好的,'if($ DB-&gt; insertDataToTable('mfVendor',$ vendor_info_json))'部分总是为false来测试$ .ajax的错误处理代码。无论我做什么,错误:即使php代码一直抛出异常,回调也不起作用。
我在这里遇到的问题是什么? :(
答案 0 :(得分:1)
当您的服务器抛出内部服务器错误时,从Javascript方面它仍然是成功的。在success
函数中,您必须检查响应的状态代码,并相应地处理它。