余烬数据:防止对查询参数进行编码

Ember Data: Prevent encodeURIComponent on Query Params

本文关键字:参数 编码 查询 数据 余烬      更新时间:2023-09-26

我正在使用一个需要使用保留字的API,这与规范的建议相反。 我需要覆盖对 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

您需要

覆盖适配器上的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;
}