我正在使用骨干收集来获取一些数据。在传递给fetch的选项中,我有一个添加到url中的字符串参数:

options = {data: {sterm: "hello world"}}


当骨干网对此运行提取时,URL包含

sterm=hello+world


后端不接受的格式必须为:

sterm=hello%20world


所以我将选项更改为:

options = {data: {sterm: encodeURIComponent("hello world")}}


然后执行提取时,它包含格式正确的查询参数,但是,如果我传入其中包含%的字符串,则encodeURIComponent似乎会将%25更改为%,我理解这是正确的,但是在主干内部获取时,它已更改到%2525这是错误的。有什么方法可以配置主干获取,从而不会将%25更改为%2525?

最佳答案

Backbone集合fetch()方法uses jQuery.ajax()方法,并接受jQuery.ajax()选项作为参数。在jQuery.ajax()方法的documentation中,您可能会发现,如果将processData字段定义为false,则不会对请求中的数据进行任何预处理。

options = {
    data: {
        sterm: encodeURIComponent("hello world")
    },
    processData: false
}

10-06 03:58