我正在使用骨干收集来获取一些数据。在传递给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
}