我正在使用一个API,它需要使用保留字来对抗the recommendation of the specification。我需要覆盖编码URL的默认行为。
以下是我的查询参数:
export default Ember.Mixin.create({
keywords: null,
genre: Ember.computed.alias("applicationController.genre"),
qualities: ["720p", "1080p", "3d"],
quality: "720p,1080p,3d",
queryParams: ["keywords", "page", "perPage", "genre", "sort", "quality"],
perPage: 50,
page: 1,
sort: "asc"
});
目前,请求结束时,
个字符替换为%2c
。如何保留quality
的查询参数值?
答案 0 :(得分:2)
您需要覆盖适配器上的ajaxOptions
。
默认实现将.data
直接赋给jQuery,然后jQuery正在对查询参数进行编码。也许有些像这样可以做到这一点:
ajaxOptions() {
let hash = this._super(...arguments);
if(hash.data && hash.type === 'GET') {
hash.url += '?' + Object.keys(hash.data).map(key => {
return `${key}=${hash.data[key]}`;
}).join('&');
delete hash.data;
}
return hash;
}