我正在使用Breeze作为OData客户端与服务器集成,我使用常规jQuery post请求进行登录并获得了我需要添加到每个请求的令牌,如何将此令牌添加到breeze请求?< / p>
答案 0 :(得分:3)
Brian Noyes (wonderful) Pluralsight course on Breeze的评论中出现了类似的问题。
它的要点如下。
当您选择OData数据服务时,Breeze会将与服务器的通信(AJAX调用)委托给DataJS。这就是Breeze OData数据服务的实现方式。我们认为这是一个明智的选择,因为微软(据我所知)主要负责维护DataJS;更好的让Breeze让他们领先。
所以你应该寻找的是DataJS钩子。提出这个问题的人@bhlaban写道:
“我想我找到了一个解决方法:由于breeze使用数据引擎来为odata,我只是做了以下(来自datajs论坛)来设置授权标题:
var oldClient = OData.defaultHttpClient;
var myClient = {
request: function (request, success, error) {
request.headers.Authorization = $http.defaults.headers.common['Authorization'];
return oldClient.request(request, success, error);
}
};
OData.defaultHttpClient = myClient;
如果你没有使用Angular的$http
,你会以其他方式获得标题。