AJAX 请求不起作用 (POST)

AJAX request does not work (POST)

本文关键字:POST 不起作用 请求 AJAX      更新时间:2023-09-26

我对使用 AJAX 的 POST 请求有一点问题。数据似乎没有存储在数据库中。当我使用 GET 而不是 POST 时,它可以工作,但问题是它发送了大量数据,因为它是来自页面上画布的图像数据。我试图打印出发送的数据的大小,以确保它在发送之前确实是正确的(它大约有 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 看起来不错,但你需要 POST 你正在更新的行 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());
}