如果使用axios和query-string库发出POST请求时,遇到了query-string导致POST数据损坏的问题,可以尝试以下解决方法:
data
参数,axios会自动使用默认的参数序列化方式,通常是将数据转换为JSON格式。import axios from 'axios';
axios.post('url', { name: 'John', age: 25 })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
import axios from 'axios';
import qs from 'query-string';
const data = { name: 'John', age: 25 };
const serializedData = qs.stringify(data);
axios.post('url', serializedData, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
上述代码中,我们使用了query-string
库的stringify
方法将数据转换为URL编码的字符串,并在请求的headers
中指定了Content-Type
为application/x-www-form-urlencoded
。
import $ from 'jquery';
import qs from 'query-string';
const data = { name: 'John', age: 25 };
const serializedData = qs.stringify(data);
$.ajax({
url: 'url',
type: 'POST',
data: serializedData,
success: response => {
console.log(response);
},
error: error => {
console.error(error);
},
});
上述代码中,我们使用了jQuery的$.ajax
方法来发送POST请求,并将数据序列化为URL编码的字符串。
以上是解决“axios + query-string vs. jQuery,query-string导致POST数据损坏”问题的一些常用方法,根据具体情况选择适合自己的解决方案。