5

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

示例:我的服务期望某个键成为标头名称“x-service-key”中请求的一部分。到目前为止,我一直在使用 jquery ajax 和 amplify,所以很容易设置标题。由于我无法控制微风发出的请求,我如何传递标头之类的额外内容?

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

4

1 回答 1

7

从 Breeze 0.70.1 开始,我们现在支持完全自定义或替换微风客户端和服务器上的 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" 
       },
};

或者,您可以拦截各个 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");
       }
 };
于 2012-11-28T23:44:59.580 回答