首页 > 其他分享 >请求体编码【源自axios官网】

请求体编码【源自axios官网】

时间:2023-12-13 18:14:49浏览次数:36  
标签:编码 qs axios const form post 官网 data

请求体编码

默认情况下,axios将 JavaScript 对象序列化为 JSON 。 要以application/x-www-form-urlencoded格式发送数据,您可以使用以下选项之一。

浏览器

在浏览器中,可以使用URLSearchParams API,如下所示:

const params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);

请注意,不是所有的浏览器(参见 caniuse.com)都支持 URLSearchParams ,但是可以使用polyfill (确保 polyfill 全局环境)

或者, 您可以使用qs 库编码数据:

const qs = require('qs');
axios.post('/foo', qs.stringify({ 'bar': 123 }));

或者用另一种方式 (ES6),

import qs from 'qs';
const data = { 'bar': 123 };
const options = {
  method: 'POST',
  headers: { 'content-type': 'application/x-www-form-urlencoded' },
  data: qs.stringify(data),
  url,
};
axios(options);

Node.js

Query string

在 node.js 中, 可以使用 querystring 模块,如下所示:

const querystring = require('querystring');
axios.post('http://something.com/', querystring.stringify({ foo: 'bar' }));

或者从'url module'中使用'URLSearchParams',如下所示:

const url = require('url');
const params = new url.URLSearchParams({ foo: 'bar' });
axios.post('http://something.com/', params.toString());

您也可以使用 qs 库。

注意

如果需要对嵌套对象进行字符串化处理,则最好使用 qs 库,因为 querystring 方法在该用例中存在已知问题(https://github.com/nodejs/node-v0.x-archive/issues/1665)。

Form data

在 node.js, 您可以使用 form-data 库,如下所示:

const FormData = require('form-data');
 
const form = new FormData();
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_file', fs.createReadStream('/foo/bar.jpg'));

axios.post('https://example.com', form, { headers: form.getHeaders() })

或者, 使用一个拦截器:

axios.interceptors.request.use(config => {
  if (config.data instanceof FormData) {
    Object.assign(config.headers, config.data.getHeaders());
  }
  return config;
});

标签:编码,qs,axios,const,form,post,官网,data
From: https://www.cnblogs.com/xiaoyichuan/p/17899629.html

相关文章

  • rkmedia的视频采集、编码、推流与保存
    rkmedia简介RKMedia是由瑞芯微提供的专门用于音视频处理的系统。它提供了丰富的功能,包括音视频采集、编解码、加密解密等操作。在音视频传输中,编解码是必不可少的环节,它可以减小文件大小,节省带宽。RKMedia支持多种视频编码方式,如H264,并且在H264编码中,将视频数据帧分为关键帧(I帧)、单......
  • Huffman 编码的估计
    \(\newcommand{\HH}{\operatorname{H}}\)我们熟知一些说法,比如一个二叉树如果第\(i\)个节点的访问次数是\(w_i\),那么最优的建树会使得总共访问节点次数是\[O\left(\sumw_i\log\frac{W}{w_i}\right)\]量级的,其中\(W=\sumw_i\).那么这个说法到底有多精确呢?......
  • ASCII编码
    一、ASCII编码简介ASCII(AmericanStandardCodeforInformationInterchange,美国标准信息交换代码)是一种基于拉丁字母的电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,涵盖了128个字符。Ascii编码解码--一个覆盖广泛主题工具的高效在线......
  • MySQL设置字符编码
    MySQL设置字符编码一、8.0设置字符集#vim/etc/mysql/my.cnf[mysqld]port=3306character-set-client-handshake=FALSEcharacter-set-server=utf8mb4collation-server=utf8mb4_unicode_ci#相对应的排序规则init_connect='SETNAMESut......
  • 深度学习面试常用代码:MHA/MQA/GQA/LN/BN/位置编码代码
    深度学习常用代码参考:https://zhuanlan.zhihu.com/p/6505754261.MHA(MultiHeadAttention)代码实现#1.MHA实现importtorchimporttorch.nnasnnimporttorch.nn.functionalasFclassScaleDotProductAttention(nn.Module):def__init__(self,):......
  • 字符编码
    什么是字符编码字符编码中的编码指的是翻译或者转换的意思即将人能理解的字符翻译成计算机能识别的数字字符编码的发展史一家独大计算机是美国人发明的,美国人想更方便的掌控计算机中的语言,于是就发明了ASCII码表这张表存储了英文字符及特殊标点和数字之间的一一对应关......
  • Arcgis分割图斑编码工具
    一、分割图斑编码:分割图斑在原图斑编码的基础上_1、_2................的续编。二、代码:#coding:utf-8importarcpyfromcollectionsimportCounterdefget_repeat_values(in_table,field):fields_values=[]witharcpy.da.SearchCursor(in_table,field)as......
  • 宗地从上到下从左到右西北角顺时针界址点编码、宗地界址点成果表、宗地四至情况说明、
    一、宗地界址点编码:从上到下从左到右每宗西北角顺时针编码,可根据界址点分类类型计算序号前面的字母。二、界址点成果表:每一宗地生成一个界址点成果表.xls,西北角界址点开始顺时针填写界址点,首先填写宗地外环界址点,最后填写宗地内环。三、宗地四至情况说明:西北角界址点开始顺时......
  • ubuntu-购买云服务器修改为root权限并安装宝塔上线官网静态页面
    1、首先在购买服务器时会让你填写用户名和密码,需要记住,然后登录默认是 在设置密码时默认登录名为ubuntu不可选 2、使用vim /etc/ssh/sshd_config修改下面的参数:PermitRootLogin yes保存退出,重启ssh服务(systemctl restart sshd)。然后在控制台重置密码,选择自定义用户,填......
  • burp技术主题基本技能之使用HTML编码与前导零进行xss bypass
    使用编码对攻击进行模糊处理https://portswigger.net/web-security/all-topicsburp官网所有技术主题基础技能URLdecoded服务器端;HTMLdecoded客户端inputfilters输入过滤器:还需要对输入进行解码,检查输入安全性为什么要编码?[...]/?search=Fish+&+Chips&有特......