我有一些参数要发布到我的服务器上:

{
    'userName': 'test@gmail.com',
    'password': 'Password!',
    'grant_type': 'password'
}

我发送的请求(目前没有参数)如下

var obj = {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
  },
};
fetch('https://example.com/login', obj)
  .then(function(res) {
    // Do stuff with result
  }); 

如何在请求中包含表单编码参数?

推荐答案

您必须自己组装x-www-form-urlencoded负载,如下所示:

var details = {
    'userName': 'test@gmail.com',
    'password': 'Password!',
    'grant_type': 'password'
};

var formBody = [];
for (var property in details) {
  var encodedKey = encodeURIComponent(property);
  var encodedValue = encodeURIComponent(details[property]);
  formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");

fetch('https://example.com/login', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
  },
  body: formBody
})

请注意,if您在(足够现代的)浏览器中使用fetch,而不是Reaction Native,您可以创建一个URLSearchParams对象并将其用作正文,因为Fetch Standard states要求如果bodyURLSearchParams对象,则应该将其序列化为application/x-www-form-urlencoded.但是,您不能在Reaction Native中执行此操作,因为Reaction Native does not implement URLSearchParams.

Javascript相关问答推荐

try 在addEventHandler内设置表单的文件输入.值=空

如何在不指定宽度和高度的情况下显示来自网址的下一张图像

使用axios.获取实时服务器时的404响应

Msgraph用户邀请自定义邮箱模板

为什么按钮会随浮动属性一起移动?

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

用于编辑CSS样式的Java脚本

如果Arrow函数返回函数,而不是为useEffect返回NULL,则会出现错误

将核心模块导入另一个组件模块时存在多个主题

如何创建返回不带`new`关键字的实例的类

基于props 类型的不同props ,根据来自接口的值扩展类型

在css中放置所需 colored颜色 以填充图像的透明区域

邮箱密码重置链接不适用于已部署的React应用程序

以编程方式聚焦的链接将被聚焦,但样式不适用

在JS中动态创建对象,并将其追加到HTML表中

在Vercel中部署Next.js项目时获取`ReferenceError:未定义文档`

处理TypeScrip Vue组件未初始化的react 对象

Django导入问题,无法导入我的应用程序,但我已在设置中安装了它

如果我的列有条件,我如何呈现图标?

未捕获的不变违规:即使在使用DndProvider之后也应使用拖放上下文