How do I set headers before letting breeze make a request?
Example: my service expects a certain key to be part of the request in a header name 'x-service-key'. Till now, I was using jquery ajax and amplify, so pretty easy to set up the header. Since I don't have any control over the request that breeze is making, how do I pass extra stuff like headers?
此问题由 sujesharukil 在我们的 IdeaBlade 论坛上发布。我在这里重新发布问题和答案,因为我认为这对 Breeze Stack Overflow 社区很有用。
最佳答案
从 Breeze 0.70.1 开始,我们现在支持完全自定义或替换 Breeze 客户端与服务器上的 Web 服务之间的任何 Ajax 通信的能力。
有关 Ajax 支持的 Breeze 文档仍在编写中,但希望以下内容能够帮助您入门。
要控制 Breeze 发出的每个 Ajax 请求的 header ,您可以在应用首次启动时执行以下代码。
var ajaxImpl = breeze.config.getAdapterInstance("ajax");
ajaxImpl.defaultSettings = {
headers: {
// any CORS or other headers that you want to specify.
"X-Test-Header": "foo2"
},
};
或者,您可以拦截各个 Ajax 调用并根据请求有选择地添加 header 。
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");
}
};
关于ajax - 在 Breeze 中设置 AJAX header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13616445/