Javascript JSON到PHPAPI没有发生

Javascript JSON到PHPAPI没有发生,javascript,php,json,Javascript,Php,Json,我试图使用Javascript和PHP保存点击按钮时的数据 按钮点击: var xhr = new XMLHttpRequest(); var url = "savedata.php"; xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/json"); /*xhr.onr

我试图使用Javascript和PHP保存点击按钮时的数据

按钮点击:

            var xhr = new XMLHttpRequest();
            var url = "savedata.php";
            xhr.open("POST", url, true);
            xhr.setRequestHeader("Content-Type", "application/json");
            /*xhr.onreadystatechange = function () {
                if (xhr.readyState === 4 && xhr.status === 200) {
                    var json = JSON.parse(xhr.responseText);
                    console.log(json.rawText + ", " + json.convertedText);
                }
            };*/
            var data = JSON.stringify({"rawText": rt, "convertedText": ct});
            xhr.send(data);
savedata.php

<?php
header("Content-Type: application/json");

require('db/db.php');
session_start();

    $saverawText = $_POST['rawText'];
    $saveConvertedText = $_POST['convertedText'];

    $ins_query="insert into cmn_data (`rawtext`,`convertedtext`) values ('$saverawText','$saveConvertedText')";
    $result = mysqli_query($con, $ins_query);

?>

您可以这样发布您的值:

var xhr = new XMLHttpRequest();
var url = "savedata.php";
xhr.open("POST", url, true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
/*xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var json = JSON.parse(xhr.responseText);
        console.log(json.rawText + ", " + json.convertedText);
    }
};*/
var data = "rawText=" + rt + "&convertedText=" + ct;
xhr.send(data);

您可以这样发布您的价值观:

var xhr = new XMLHttpRequest();
var url = "savedata.php";
xhr.open("POST", url, true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
/*xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var json = JSON.parse(xhr.responseText);
        console.log(json.rawText + ", " + json.convertedText);
    }
};*/
var data = "rawText=" + rt + "&convertedText=" + ct;
xhr.send(data);

PHP不会将JSON请求解析为$\u POST数组本身。您应该在php中解析请求正文:

$request=json\u解码(文件获取内容('php://input",对),;
$saverawText=$request['rawText'];
$saveConvertedText=$request['convertedText'];
或使用FormData对象将数据传递给请求:

var data=new FormData();
数据。追加(“rawText”,rt);
数据。追加(“convertedText”,ct);
发送(数据);

如前所述,将用户输入直接包含到sql中可能会导致sql注入。用于转义用户输入或PDO驱动程序,这是一种更复杂但更可靠的方法。

PHP不解析对$\u POST数组本身的JSON请求。您应该在php中解析请求正文:

$request=json\u解码(文件获取内容('php://input",对),;
$saverawText=$request['rawText'];
$saveConvertedText=$request['convertedText'];
或使用FormData对象将数据传递给请求:

var data=new FormData();
数据。追加(“rawText”,rt);
数据。追加(“convertedText”,ct);
发送(数据);

如前所述,将用户输入直接包含到sql中可能会导致sql注入。用于转义用户输入或PDO驱动程序,这是一种更复杂但更可靠的方法。

您看到的错误消息或行为是什么?控制台里有什么?错误日志中有什么?首先,还要删除
标题(“内容类型:application/json”)没有错误消息。@Abracadver:我删除了它,但它有什么不同吗。查看此内容,看看它是否有助于您了解如何通过Ajax发送参数您看到的错误消息或行为是什么?控制台里有什么?错误日志中有什么?首先,还要删除
标题(“内容类型:application/json”)没有错误消息。@Abracadver:我删除了它,但它有什么不同吗。查看此内容,看看它是否有助于您了解如何通过AJAXI发送参数。我无法通过JSON发送数据?我无法通过JSON发送数据?忘记包装
php://input
使用
文件获取内容
并将json解析为关联数组。更新的
$request=json\u解码(文件获取内容('php://input",对),尝试一下,现在应该可以了忘记包装
php://input
使用
文件获取内容
并将json解析为关联数组。更新的
$request=json\u解码(文件获取内容('php://input",对),试试,现在应该可以了