javascript - 对 Backbone 保存请求调用成功回调

标签 javascript backbone.js

我想将主干模型与服务器同步,并在从服务器收到成功响应时执行一些操作。 PUT 请求已发送,响应 statusCode 为 200,但响应正文为空。仅当响应不为空时才会调用成功回调。后端团队不会给我任何回复。那么有没有比检查错误回调中的状态代码更好的解决方案呢?更“正确”?这是代码:

var settingService = Backbone.Model.extend({
        "url": "usersettings",
        "sync": function(method) {
          if (method === "create") {
            arguments[0] = "update";
          }
          return Backbone.sync.apply(this, arguments);
        },
      });


      var SettingsView = Backbone.View.extend({
        initialize: function() {
          this.services = {
            "userSettingsService": new settingService()
          };
        },
        saveSettings: function() {
          this.services.userSettingsService.save({
            "currency": "USD",
            "dateFomat": "DD-MM-YYYY"
          }, {
            "success": function(model, response) {
              console.log("it will not log anything");
            },
            "error": function(model, response) {
              if (response.statusCode === 200) {
                console.log("but will log here");
              }
            }
          })
        }
      });

      var settings_view = new SettingsView();

      settings_view.saveSettings();

http://jsfiddle.net/ovg3kyqz/7/ - 它不会重现问题,因为我不知道如何正确设置 jsfiidle (如果可能的话)以在我的工作环境中做出响应。只是为了表明代码可以正常工作

最佳答案

应该为空的 PUT 响应调用成功处理程序,我在这里 fork 了你的 jsfiddle: http://jsfiddle.net/tbvw4cbm/

var settingService = Backbone.Model.extend({
    "url": "http://www.mocky.io/v2/57d018e41000004c00208c95",
    "sync": function(method) {

我已使用 http://www.mocky.io/ 设置端点和 CORS 响应 header (以便 JSFiddle 可以评估它):

  • 访问控制允许来源:http://fiddle.jshell.net
  • 访问控制允许方法:PUT
  • 访问控制允许 header :内容类型

但关键是响应正文是空的,如果您检查 jsfiddle 中的 ajax 请求,您可以看到这一点。

关于javascript - 对 Backbone 保存请求调用成功回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39369522/

相关文章:

javascript - 在不丢失事件的情况下查找+替换元素的内容

javascript - 修改后的原始数组值

javascript - Angular 7 使用 *ngfor 分组数据

javascript - 为什么 Backbone 中的 checkbox 需要超时才能被选中

javascript - 在主干中使用 JSONP 获取 reddit 评论会返回 HTML

javascript - 如何将backgrid与backbone布局管理器集成

javascript - 如何验证 Phantom 钱包的签名?

javascript - 2 AngularJS 图像获取中单个资源的 GET 方法形成

javascript - 何时在 Backbone View 中应用 jQuery 代码

javascript - Require.js + Backbone 优化