Jquery 和 Ajax 中的错误
Error in Jquery and Ajax
我用ajax和jquery编写了在本地机器中上传图像的代码。如果条件未执行。
这是 fnUploadImage 脚本。
function fnUploadPhoto()
{
var image = $("#txtUploadImage").val();
var objUploadImage = new Object();
objUploadImage.ImageName = image;
objUploadImage.UserID = <?php echo $_SESSION['UserId']; ?>
$.ajax({
type:"POST",
url:"db.php?UploadImage",
data: {data:objUploadImage},
dataType:"json",
async:false,
success: function(response)
{
alert(response.ErrorMessage);
if(response.IsError)
$("#errorUploadPhoto")[0].innerHTML = response.ErrorMessage;
else
$("#errorUploadPhoto")[0].innerHTML = response.SuccessMessage;
},
error:function(response)
{
alert("Error: " + response.ErrorMessage);
}
});
}
并且这个函数调用db.php UploadImage函数,如下所示:
function UploadImage($data)
{
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["txtUploadImage"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
die(json_encode(array("IsError" => true, "ErrorMessage" => "Error")));
//echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
json_encode(array("IsError" => true, "ErrorMessage" => "Return Code: " . $_FILES["file"]["error"]));
}
else
{
if (file_exists("profile_images/" . $_FILES["file"]["txtUploadImage"]))
{
//echo $_FILES["file"]["name"] . " already exists. ";
json_encode(array("IsError" => true, "ErrorMessage" => "Filename already exists."));
}
else
{
if($_FILES["file"]["size"]/1024 < 20)
{
move_uploaded_file($_FILES["file"]["tmp_name"], "profile_images/" . $_FILES["file"]["txtUploadImage"]);
//echo "Stored in: " . "profile_images/" . $_FILES["file"]["name"];
json_encode(array("IsError" => false, "SuccessMessage" => "Image uploaded successfully."));
}
else
{
json_encode(array("IsError" => true, "ErrorMessage" => "Minimum image size is 20 kb."));
}
}
}
}
else
{
//echo "Invalid file.";
json_encode(array("IsError" => true, "ErrorMessage" => "Invalid file."));
}
}
当我运行此脚本时,它向我显示名为undefined的错误。请帮我解决这个问题。
引
号在这里更响亮。如果你不使用代码,它就会理解它是一个未定义的变量
当
请求出现问题时,将调用 $.ajax
上的 error
函数。但是,您使用的是脚本成功运行的预期结果,但返回错误:
error: function(response) {
alert("Error: " + response.ErrorMessage);
}
response.ErrorMessage
不会被设置(仅在success
回调中),因为这是您在请求成功时返回的内容,尽管请求内部的逻辑可能会返回错误,但这就是您在success
回调中处理的内容。
这是捕获错误呼叫的方法:
error: function(xhr, status, error) {
alert("Error: " + status + ' ' + error);
}
如评论中所述,这一行也有问题:
objUploadImage.UserID = <?php echo $_SESSION['UserId']; ?>;
needs a ; ^
如果UserId
不是整数 ID,则它确实需要引号。
检查是否在数组中获取文件$_FILES["file"]
我认为这是
jquery的旧方法"handleError",它已从jQuery版本1.5中删除,您可以在javascript中使用此自定义错误处理程序,jQuery在任何地方:
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error )
s.error( xhr, status, e );
//Log it in the console
else if(xhr.responseText)
console.log(xhr.responseText);
}});
相关文章:
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- VB NET JQUERY AJAX上出现错误500
- 一个ajax循环有两个输出错误innerHTML
- Ajax更新面板随机错误'PRM_MissingPanel'
- 错误:Ajax未定义
- 错误:$.ajax 不是一个函数
- 如何修复此未定义的索引错误?Ajax 到 PHP
- JSONP - 触发器完成、成功、错误 Ajax 调用
- 错误:ajax 方法中的循环
- Jasmine,一个测试,多个ajax请求(错误:ajax已经被监视)
- 被迫处理一个&在XML文件中,试图解决解析错误$.ajax({..})
- 0x800a138a-JavaScript运行时错误:AJAX调用中需要函数
- 使用量角器spyOn()为jQuery ajax()导致错误"ajax()方法不存在"
- Ajax返回错误调用错误Ajax错误调用
- JQuery错误ajax完成回调触发
- 从控制台进行Ajax调用,得到错误$.Ajax不是函数()
- 类型错误Ajax后Flask Python