javascript - 未通过 XMLHttpRequest 发送数据
问题描述
我用来向我的 PHP 发送一些信息的脚本有一个奇怪的问题。我说很奇怪,因为这段代码是同一个应用程序上一些已经在工作的代码的直接副本,带有新的变量名。我需要将少量数据上传到我的服务器,虽然值在那里并且代码一直运行,但没有发送 POST 数据或其他东西。我已经检查过了,它说它已经提交给我的 PHP,但没有任何反应。如果对我的某些格式有疑问,我正在使用 Vue.js
我曾尝试在网上查看其他示例,但我认为这是从我的应用程序的工作部分复制的代码块。它一直有效,直到从 JS 传输数据 - PHP
JS
editDisplayName: function() {
var self = this;
var newName = prompt("10 Characters Max, 3 Min", "Enter Display Name");
if(newName.length <= 10 && newName.length >= 3 ) {
var sendData = new XMLHttpRequest();
sendData.open("POST", "primary.php", true);
sendData.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
sendData.send(newName);
self.username = window.localStorage.getItem('username');
window.localStorage.clear();
}
}
PHP
function changeUsername() {
// Connect to Server
$link = // Commented Out For Security;
if (mysqli_connect_error()) {
die ("DB Connection Error");
}
$newName = $_POST['newName'];
$newName = mysqli_real_escape_string($link, $newName);
$token = $_COOKIE['validToken'];
$token = mysqli_real_escape_string($link, $token);
$query = "UPDATE userData SET username = '$newName' WHERE token = '$token' LIMIT 1";
mysqli_query($link, $query);
mysqli_close($link);
echo("
<script>
var username = $newName;
window.localStorage.setItem('username', username);
</script>
");
}
if(isset($_POST['newName'])) {
changeUsername();
}
我期待在我的 DOM 上设置新的用户名,但它是空白的。东西停止工作的地方是发送 POST 数据的地方,因为我的 PHP 没有收到任何东西,但我不知道出了什么问题。
解决方案
不仅要发送值,还应该发送参数名称。
因此,不要使用 ,而是sendData.send(newName);
尝试使用:
sendData.send("newName=" + newName);
(因为您的 Content-type 是application/x-www-form-urlencoded
)
或者,如果您想使用 JSON:
将您的 Content-type 更改为application/json
,然后将数据作为 JSON 字符串发送,如下所示:
sendData.send(JSON.stringify({'newName': newName}));
推荐阅读
- mp4 - MOV 或 MP4 容器中支持的 AVC 配置文件
- azure-api-management - 用于白名单的 Azure API 管理 IP
- api - Microsoft Graph API - 关注站点
- c - 如何在 c 编程中使用 2D 数组找到最高和最低平均值?
- c# - 如何正确连接到字符串
- javascript - 在子组件(Angular)发出 selectAll 和 unSelectAll 事件后在父组件中获取结果
- python - 如何获取 Atom 的脚本包以从脚本的当前工作目录运行脚本?
- haskell - 如何在 zip 生成的列表上折叠 io 操作以打印 2 列?
- javascript - 如何在 JS 中擦除部分文本?
- python - 如何使用 Xarray 在 lambda 中读取 S3 文件?