Backbone model.save() is sending PUT instead of POST

前端 未结 3 1373
甜味超标
甜味超标 2020-12-31 00:56

I call save using this:

console.log(this.model.isNew());
console.log(this.model);

this.model.save({}, {
    success: function (model, response, options) {
          


        
相关标签:
3条回答
  • 2020-12-31 01:26

    ID should not even exist for a new entry. The issue is in the part you didn't show - in the part where you instantiate, create and populate the model.

    Here is a quote from the Backbone documentation:

    If the model does not yet have an id, it is considered to be new.

    It is clear from your code that you are assigning an id attribute. Your backend should be doing that. And since you are doing it on a client, backbone presumes it it not new, and uses PUT

    0 讨论(0)
  • 2020-12-31 01:33

    You can specify the ID in defaults, just make sure it's set to null (isNew will be set to true).

    In your case it must be

    LineNo_: null
    
    0 讨论(0)
  • 2020-12-31 01:51

    The above answers are correct in that if the model you are .save'ing has an id attribute backbone will do a PUT rather than a POST.

    This behavior can be overridden simply by adding type: 'POST' to your save block:

    var fooModel = new Backbone.Model({ id: 1});
    
    fooModel.save(null, {
      type: 'POST'
    });
    
    0 讨论(0)
提交回复
热议问题