![](/img/trans.png)
[英]axios + query-string vs. jQuery, POST data broken by query-string
[英]Axios + query-string
我想知道如何使用查询字符串 npm package 来简化我的 axios 调用。 我使用的 package 是: https://www.npmjs.com/package/query-string
一个例子:
import qs from 'query-string';
import axios from 'axios';
axios.get(`http://localhost:3000/api/products${qs.parse({ offset: 0, limit: 12 })}`);
不知道为什么,但这不能按预期工作。
你真的不需要它。 Axios
有一种标准方法可以将参数放入您的请求中,而无需任何额外的库或手动执行某些操作。
axios
.request({
url: '/some/url',
method: 'get',
params: {
offset: 0,
limit: 12,
unknown: '???'
},
...
})
必须转换为/some/url?offset=0&limit=12&unknown=%3F%3F%3F
。
由于不需要使用查询字符串,因为 axios 通过将参数放入请求中自动执行此操作。
但是,如果您想使用查询字符串 package ,您可以通过这种方式进行操作。
这是一个简短的示例,可以让您对使用query-string有所了解。
import qs from 'qs'; (https://www.npmjs.com/package/qs) import axios from 'axios'; export default axios.create({ baseURL: `http://localhost:3000/api/products`, params: (params) => { return qs.stringify(params, {offset: 0, limit: 12}); }, });
Axios
提供了另一种方便而强大的方法,将您的查询参数作为 object 发送到 http GET
方法。
您可以通过以下方式更改您的请求:
axios.get('http://localhost:3000/api/products', {
params: {
offset: 0,
limit: 12
}
})
为了使用模板文字,您需要使用反引号 ( ) 不是正常的引号。 代码:
axios.get(`http://localhost:3000/api/products${qs.parse({ offset: 0, limit: 12 })}`);
如果您不想使用反引号,则不能使用${}
语法。 就像正常的字符串插值一样。
axios.get(‘http://localhost:3000/api/products'+qs.parse({ offset: 0, limit: 12 })});
this.$axios.get('/', {
params: {},
paramsSerializer: params => {
return qs.stringify(params);
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.