在让微风发出请求之前如何设置标头?
示例:我的服务期望某个键成为标头名称“x-service-key”中请求的一部分。到目前为止,我一直在使用 jquery ajax 和 amplify,所以很容易设置标题。由于我无法控制微风发出的请求,我如何传递标头之类的额外内容?
这个问题是由 sujesharukil 在我们的 IdeaBlade 论坛上发布的。我在这里重新发布问题和答案,因为我认为它对 Breeze Stack Overflow 社区很有用。
从 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");
}
};