【发布时间】:2015-01-10 17:21:39
【问题描述】:
我遇到的问题似乎与 Backbone.js 创建查询字符串的方式有关。
Backbone 像这样创建查询字符串:
Stats.asmx/GetTarget?domainId=-1&timePeriod=M
这会导致 asmx 服务抛出 500 错误。
如果我将查询字符串更改为:
Stats.asmx/GetTarget?domainId="-1"&timePeriod="M"
它按预期工作。这是我正在使用的代码,由于在查询字符串参数周围没有引号,它会产生 500 错误:
var params = {
domainId: "-1",
timePeriod: "M"
};
var targetData = new Targets();
targetData.fetch({
data: params,
dataType: "json",
contentType: "application/json; charset=utf-8"
});
我知道我可以编写一个自定义函数来按照我想要的方式格式化查询字符串,但是有没有办法使用 Backbone.js 在查询字符串中添加“”?
编辑:
这就是我写自定义函数的意思。
在集合中添加:
domainId: "",
timePeriod: "",
urlRoot: "Stats.asmx/GetTarget",
url: function() {
return this.urlRoot + "?" + "domainId=\"" + this.domainId + "\"" + "&"
+ "timePeriod=\"" + this.timePeriod + "\"";
},
然后:
var targetData = new Targets();
targetData.domainId = "-1";
targetData.timePeriod = "M";
targetData.fetch({
dataType: "json",
contentType: "application/json; charset=utf-8"
但我确信有更好的方法来做到这一点。
【问题讨论】:
标签: javascript web-services backbone.js asmx