我在Backbone模型上调用save().这适用于我尝试的每个浏览器的每个版本,除了iOS上的Safari和Safari.
在这两个浏览器中,在使用400 Bad Request错误命中服务器之前,调用失败.
电话看起来像../common/User/
我的用户模型如下所示:
Backbone.Model.extend({
idAttribute: "UserId",
initialize: function() {
},
url: function () {
var base = 'common/User/';
return (this.isNew()) ? base : base + this.id;
},...
我试图保存的信息如下所示:
{"BrowserType":"Safari","BrowserVersion":5.1,"ApplicationPath":"index"}
我不确定我能提供哪些其他信息才能提供帮助.
任何想法为什么会发生这种情况?
编辑
请求标头如下所示:
Accept:application/json, text/javascript, */*; q=0.01
Content-Type:application/json
Origin:http://localhost:1087
Referer:http://localhost:1087/index.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
X-Requested-With:XMLHttpRequest
最佳答案 更新User模型的url方法以包含尾部斜杠:
url: function () {
var base = 'common/User/';
return (this.isNew()) ? base : base + this.id + "/";
},
我在Backbone项目中遇到了同样的问题 – 特定型号的所有POST / PUT / PATCH请求都在Safari和Mobile Safari中失败,尽管我在其他浏览器中没有遇到任何问题.正如@mu is too short’s comment所示,在我的模型的url方法中添加一个尾部斜杠修复了这个问题.