static sendHelp() {
const data = {
data: {"AuthAD": "true"}
};
console.log(data);
const config = {
headers: {'content-type': 'application/x-www-form-urlencoded'}
};
return axios.post('http://kashkin:20880', data, {config}).then(
response => response.data
);
}
当我使用它时,我有未经授权的回答401,并且不知道如何正确发送数据?
var settings = {
"async": true,
"crossDomain": true,
"url": "http://kashkin:20880/",
"method": "POST",
"headers": {
"content-type": "application/x-www-form-urlencoded"
},
"data": {
"AuthAD": "true"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
答案 0 :(得分:0)
{config}
,您正在将配置设置为以下形式的对象
{config} = { config: { headers: '...' }
直接传递config
,data
对象也是如此。
const data = {"AuthAD": "true"};
return axios.post('http://kashkin:20880', data, config)
.then(response => response.data);
答案 1 :(得分:0)
直接来自axios文档:
Using application/x-www-form-urlencoded format
默认情况下,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);
请注意,并非所有浏览器都支持
URLSearchParams
(请参阅caniuse.com),但是有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
在node.js中,您可以按以下方式使用
querystring
模块:const querystring = require('querystring'); axios.post('http://something.com/', querystring.stringify({ foo: 'bar' }));
您还可以使用
qs
库。
因此,您的情况如下:
// import the `qs` module
import qs from 'qs';
// Then you can use `qs` with `axios` in that file
const data = {
"AuthAD": "true"
};
const options = {
method: 'POST',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
data: qs.stringify(data),
url: 'http://kashkin:20880'
};
axios(options)
注意:请记住,您必须首先安装qs
软件包(通过运行npm install --save qs
命令或首选软件包管理器的等效命令。) >