BackboneJS-Sync Backbone.emulateHTTP

描述

如果您使用的是不支持 Backbone 默认 REST/HTTP 方法的旧版 Web 服务器,您可以选择启用 Backbone.emulateHTTP。将此选项设置为 true 将使用 HTTP POST 伪造 PUT、PATCH 和 DELETE 请求,并使用 true 方法设置 X-HTTP-Method-Override 标头。如果 emulateJSON 也处于启用状态,则 true 方法将作为附加 _method 参数传递。

语法

Backbone.emulateHTTP = true

示例

<!DOCTYPE html>
   <head>
      <title>Sync Example</title>
      <script src = "https://code.jquery.com/jquery-2.1.3.min.js" 
         type = "text/javascript"></script>
      
      <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.2/underscore-min.js" 
         type = "text/javascript"></script>
      
      <script src = "https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js" 
         type = "text/javascript"></script>
   </head>
   
   <body>
      <script type = "text/javascript">
        //如果 Web 服务器不支持 Backbone 的 REST/HTTP 方法,
        //则打开"Backbone.emulateHTTP"
        Backbone.emulateHTTP = true;
        
        //如果 Web 服务器无法处理编码为 application/json 的请求,
        //则将"Backbone.emulateJSON"设置为 true
        Backbone.emulateJSON = true;
        
        //sync() 方法读取并获取模型数据
        Backbone.sync = function(method, model) {
        document.write(method + ": " + JSON.stringify(model));
        model.set('id', 1); //将 id 设置为"1"的模型
        };
        
        //"Player"是模型名称,包含要显示的值
        //保存模型时
        var Player = new Backbone.Model({
        fname:"Sachin",
        lname:"Tendulkar"
        });
        
        //'save()' 方法通过委托给 sync() 方法来保存模型的数据
        Player.save();
        
        //使用值更新模型
        Player.save({country: "india"});
      </script>
      
   </body>
</html>

输出

让我们执行以下步骤来查看上述代码的工作原理 −

  • 将上述代码保存在 backbone-emulateHTTP.html 文件中

  • 在浏览器中打开此 HTML 文件。

backbonejs_sync.html