[英]AJAX request does not work (POST)
我对使用AJAX的POST请求有一点问题。 数据似乎似乎没有存储在数据库中。 当我使用GET而不是POST时,它可以工作,但是问题是它发送了大量的数据,因为它是页面上画布中的imagedata。 我尝试打印出发送的数据大小,以确保发送之前它实际上是正确的(大约10500个字符)。
这是Javascript / AJAX代码:
if(type == "DrawingData" && Drawer)
{
var CanvasData = canvas.toDataURL("image/png");
var url = "DB_Com.php";
var params = "DrawingData="+CanvasData;
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
}
这是PHP代码:
if(isset($_POST['DrawingData']))
{
$Image = mysql_real_escape_string($_POST['DrawingData']);
$query = "UPDATE BlackboardDrawing SET Data = '$Image'";
mysql_query($query) or die(mysql_error());
}
我们非常感谢您的帮助。 谢谢!
您的Ajax看起来不错,但是您需要发布要更新的行ID。 :
if(type == "DrawingData" && Drawer)
{
var CanvasData = canvas.toDataURL("image/png");
var url = "DB_Com.php";
var rowid = 'your_row_id';
var params = "DrawingData="+CanvasData+"rowid="+rowid;
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
}
并更改您的PHP脚本:
if(isset($_POST['DrawingData']))
{
$Image = mysql_real_escape_string($_POST['DrawingData']);
$rowid = (int)$_POST['rowid'];
$query = "UPDATE BlackboardDrawing SET Data = '$Image' WHERE id='$rowid'";
mysql_query($query) or die(mysql_error());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.