javascript - 无法使用 React 发送有效请求(正在使用 curl)
问题描述
我正在尝试连接到使用 aiohttp 制作的小型服务器。这是一个发布请求,这是使用 HTTPie 的样子(它也适用于 curl): 所以这是我尝试使用的 react:
const requestOptions = {
method: 'POST',
body: encodeURIComponent('username=thomas&password=yolo'),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
}
};
fetch("http://localhost:8080/login", requestOptions)
.then(response => response.json())
.then(data => console.log("data:" + data))
但是此请求不起作用:我在服务器端收到此错误:“预期用户名和密码字段”(服务器主文件 src:https ://hasteb.in/amucojas.py )。这是我的浏览器的屏幕:
正如您在此截图中看到的,发送的请求最后包含一个“:”。你认为这可能是问题所在吗?我做错什么了吗?在哪一边?
编辑:还尝试使用这些选项发送相同的请求:
const requestOptions = {
method: 'POST',
body: JSON.stringify({ "username" : "thomas", "password" : "yolo"}),
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
};
解决方案
这是我在这个网站上找到的第一个解决方案。这可能不是最好的,因为它是为原生反应而设计的,但目前这对我有用:
var details = {
'username': 'thomas',
'password': 'yolo'
};
var formBody = [];
for (var property in details) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(details[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
fetch('http://localhost:8080/login', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
body: formBody
})
.then(response => response.json())
.then(response => console.log(response));
我尝试使用 URLSearchParams 但它没有用。
推荐阅读
- asp.net-mvc - TagHelper 永远不会在 .NET Core 2.2 中执行
- sql-server - 如何确保使用 SMO 恢复 alla 数据?
- c - 无效影响程序的输出
- javascript - 我如何在 Jest 中等待 React Hook?
- netsuite - 在 SuiteLet 上显示 Map/Reduce 脚本错误
- node.js - how to fetch seller order from multiple collection data
- c# - 如何使用实时图表在条形图中的每一列上都有标签
- c++ - 基类中的唯一指针禁止实例化并出现错误“试图引用已删除的函数”
- c# - 如果存在验证错误,也要更新 ViewModel 中的属性
- java - getXmlEncoding() 给出错误的输出