我可以使用标准的jquery ajax调用访问我的web api服务:
$.ajax('http://service/method', {
contentType: 'application/json',
type: 'GET',
xhrFields: {
withCredentials: true
}
})
在服务器端,webconfig文件配置如下:
<customHeaders>
<clear/>
<add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS" />
<add name="Access-Control-Allow-Origin" value="http://localhost:1502" />
<add name="Access-Control-Allow-Headers" value="Content-Type,X-Requested-With, Authorization" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
目前,我正在尝试从端口1502上运行的本地网站上获取服务。
然而,当使用breeze时,我看不出如何指定withCredential参数,因此我得到401错误。
答案 0 :(得分:4)
查看Breeze "ajax adapter"。以下方法将为每个Breeze XHR请求添加“withCredentials”。
// get the current default Breeze AJAX adapter var ajaxAdapter = breeze.config.getAdapterInstance("ajax"); // merge 'withCredentials' into the settings Breeze passes to the jQuery.ajax method ajaxAdapter.defaultSettings = { xhrFields: { withCredentials: true } };
如果您需要有条件地将此(或其他信息)添加到请求中,您可以制作更聪明的适配器(例如,对于某些URL而不是其他URL)。
答案 1 :(得分:0)
我尝试了上面的方法,它似乎没有像BreezeJS 1.6.3那样工作。
但是,我能够稍微改变它。这是我的工作代码:
OBJ.._Hello_Hello.o