在Breeze中设置AJAX标头

Tin*_*ing 5 ajax breeze

在让微风发出请求之前如何设置标题?

示例:我的服务期望某个密钥成为标头名称"x-service-key"中请求的一部分.直到现在,我正在使用jquery ajax并放大,所以很容易设置标题.由于我对微风发出的请求没有任何控制权,我如何传递像标题这样的额外内容?

这个问题是由sujesharukil在我们的IdeaBlade论坛上发布的.我在这里重新提出问题和答案,因为我认为它对Breeze Stack Overflow社区有用.

Tin*_*ing 7

从Breeze 0.70.1开始,我们现在支持完全自定义或替换breeze客户端与服务器上的Web服务之间的任何Ajax通信的能力.

关于我们的Ajax支持的Breeze文档仍在进行中,但希望以下内容可以帮助您入门.

要控制Breeze发出的每个Ajax请求的标头,您可以在应用首次启动时执行以下代码.

 var ajaxImpl = breeze.config.getAdapterInstance("ajax");
 ajaxImpl.defaultSettings = {
       headers: { 
           // any CORS or other headers that you want to specify.
           "X-Test-Header": "foo2" 
       },
};
Run Code Online (Sandbox Code Playgroud)

或者,您可以拦截单个Ajax调用,并根据请求有选择地添加标头.

 var ajaxImpl = breeze.config.getAdapterInstance("ajax");
 ajaxImpl.defaultSettings = {
       beforeSend: function(jqXHR, settings) {
              // examine the jqXHR or settings and customize the headers accordingly.
              jqXHR.setRequestHeader("X-Test-Before-Send-Header", "foo2");
       }
 };
Run Code Online (Sandbox Code Playgroud)