首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用XMLHttpRequest和HTML传递多个参数

使用XMLHttpRequest和HTML传递多个参数
EN

Stack Overflow用户
提问于 2022-01-03 14:19:03
回答 1查看 571关注 0票数 0

我试图通过HTML表单将多个参数传递到一个XMLHttpRequest中。该请求采用网络SSID和PSK,并将其传递给/connect端点。

当我使用以下方法硬编码SSID和PSK时,它可以工作:

代码语言:javascript
代码运行次数:0
运行
复制
var data = '{"ssid":"homenetwork", "psk":"mypassword"}';
xhr.send(data);

当我试图从HTML表单中提取数据时,我会得到Chrome格式的net::ERR_EMPTY_RESPONSE

代码语言:javascript
代码运行次数:0
运行
复制
<!DOCTYPE html>
<html>
<br>

<label for="network">Network Name (SSID):</label>
<input type="text" id="network" name="network" required size="15">

<label for="presharedkey">Network Password (PSK): </label>
<input type="text" id="presharedkey" name="presharedkey" required size="15">


<button onclick="connectWifi()">Save</button> <br>

<script>
function connectWifi() {
var network = document.getElementById("network") .value;
var presharedkey = document.getElementById("presharedkey") .value;
var url = "http://192.168.0.236:8080/connect";
var xhr = new XMLHttpRequest();

xhr.open("POST", url);

xhr.setRequestHeader("Content-Type", "application/json");

xhr.onreadystatechange = function () {
   if (xhr.readyState === 4) {
      console.log(xhr.status);
      console.log(xhr.responseText);
   }};

   // var data = '{"ssid":"homenetwork", "psk":"mypassword"}';
   var data = 'ssid='+network+'&psk='+presharedkey;
   xhr.send(data);

}
</script>

</html>

我从var data =上拔出的那条线。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-03 14:22:31

您使用的数据变量需要是JSON对象。在这里的示例中,它是一个字符串,因此不传递单个值,只传递一个字符串。

尝试:

代码语言:javascript
代码运行次数:0
运行
复制
var data = `{"ssid": "${network}", "psk": "${presharedkey}"}`;

编辑我误解了原来的问题。OP试图将数据作为JSON对象发送,但不知道如何格式化它(他们声称手动传递变量字符串有效)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70567125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档