Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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 带get/post请求的主干传递API密钥_Javascript_Jquery_Backbone.js - Fatal编程技术网

Javascript 带get/post请求的主干传递API密钥

Javascript 带get/post请求的主干传递API密钥,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,每当我想保存我的模型/集合或提出任何类型的请求时,我都需要传递一个API密钥。使用jquery或主干网可以做到这一点吗 是的,您可以发送标题。我这样做: this.model.save(attrs, { headers: {api_key:that.api_key}, su

每当我想保存我的模型/集合或提出任何类型的请求时,我都需要传递一个API密钥。使用jquery或主干网可以做到这一点吗

是的,您可以发送标题。我这样做:

                this.model.save(attrs, 
                                {
                                headers: {api_key:that.api_key},
                                success: function() {

                                    },
                                    error:   function(model, xhr, options){

                                    },
                                });
使用$.ajaxSetup:

$.ajaxSetup({
  beforeSend: function(xhr) {
    xhr.setRequestHeader('api_key', api_key);
  }
});
如果您有多个页面,请将其包装成一个函数,并在每个页面上运行它。如果它是一个单页应用程序,只需在主干加载时运行它


您可以在某些位置定义api键,将其放在窗口对象上,或将其隐藏在DOM中,或将其作为参数传递给此函数

这个帖子回答你的问题了吗?“Emile linked”问题的答案非常适合解决这个问题。我推荐ajaxSend方法,因为它允许您在一个地方处理API键,并让它处理您在事后提出的每个AJAX请求,而无需任何额外的努力。您也可以覆盖主干同步,但是您发出的任何非主干AJAX请求都不会获得密钥。这种方法很有效,但它需要大量代码重复,因为您每次进行保存或销毁调用都需要它。通过使用Backbone.sync或更好的方式,通过使用jQuery的$.ajaxSend函数,您可以在一个地方处理整个API密钥问题。无论是谁否决了这一点,您能否提供一些解释,以便我改进答案?