backbone.js – 仅在Safari中保存400错误

我在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方法中添加一个尾部斜杠修复了这个问题.

点赞