Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干网未将属性与REST请求一起发送_Javascript_Rest_Backbone.js - Fatal编程技术网

Javascript 主干网未将属性与REST请求一起发送

Javascript 主干网未将属性与REST请求一起发送,javascript,rest,backbone.js,Javascript,Rest,Backbone.js,我目前正在开发一个主干应用程序,在这个应用程序中,您必须指定一个来宾名称,才能输入 Guest = Backbone.Model.extend({ urlRoot : ftd.settings.rest + '/guest', defaults: { name : '', }, validate: function( attr ) { var errors = []; if(attr.name.length <

我目前正在开发一个主干应用程序,在这个应用程序中,您必须指定一个来宾名称,才能输入

  Guest = Backbone.Model.extend({

    urlRoot : ftd.settings.rest + '/guest',

    defaults: {
      name : '',
    },

    validate: function( attr ) {
      var errors = [];
      if(attr.name.length < 4) {
        errors.push({message : "You nickname, must be atleast 4 chars", name : 'guestNickname'});
      }

      if(errors.length > 0) {
        return errors;
      }
    }
  });

  return Guest;
我的问题是,当主干发出请求时,它发送一个没有指定名称的选项请求,我甚至在Wireshark中检查了数据包,我做错了什么

奖金问题:主干网为什么发送选项请求

显然,主干网(实际上是您的浏览器)在主干网保存期间发送选项请求,但会产生副作用,因为它试图模拟“真正”的REST,包括PUT和DELETE请求,而且并非所有服务器都支持这些命令

据此:

如果你设定

Backbone.emulateHTTP = true;

然后它将尝试发布。

如果我理解正确,这只涉及PUT和DELETE请求,但是当您创建一个新实体时,类型是POST。而且,这似乎没有什么不同(您是否正在尝试跨域发送内容?这就是触发选项请求的原因。事实上,我正在发送,但只在我的本地环境中发送。谢谢,我将查看链接。希望它能在主干内工作:)
Backbone.emulateHTTP = true;