【问题标题】:Headers in post request with Backbone.js使用 Backbone.js 发布请求中的标头
【发布时间】:2014-02-17 09:41:14
【问题描述】:

我想使用 Backbone.js 在对我的 REST 服务的发布请求中添加标头,我尝试了两种方法:

this.model.save( { headers: {'X-Token' : myToken } } );

并带有 setResquestHeader :

功能:

sendToken: function (xhr) {
        var tokenCookie;

        var name = "xtoken" + "=";
        var ca = document.cookie.split(';');
        for(var i=0; i<ca.length; i++) 
        {
            var c = ca[i].trim();
            if (c.indexOf(name)==0) tokenCookie = c.substring(name.length,c.length);
        }
          xhr.setRequestHeader('X-Token', tokenCookie);
        }

电话:

this.model.save({ 
                beforeSend: this.sendToken,

                success: function() {

                    alert("success");
                },
                error: function(model,response,options) {
                    alert("error");

                }

            });     

但它似乎不起作用,它不发送标头

【问题讨论】:

  • 你把sendToken方法放在哪里了?在模型或视图中?
  • 我把sendToken方法放到视图里

标签: javascript rest backbone.js


【解决方案1】:

Model.save 的签名是 model.save([attributes], [options])。您必须传递一个空/空的属性散列才能添加选项:

this.model.save(null, {
    headers: {'X-Token' : 'myToken'}
});

还有一个演示http://jsfiddle.net/nikoshr/a4gss/

或者

this.model.save(null, {
    beforeSend: function(xhr) {
        xhr.setRequestHeader('X-Token', 'set token');
    }
});

http://jsfiddle.net/nikoshr/a4gss/1/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-31
    • 2018-04-24
    • 1970-01-01
    • 2014-03-10
    • 2019-03-07
    • 1970-01-01
    • 2018-03-28
    • 2018-01-15
    相关资源
    最近更新 更多