【发布时间】:2015-11-18 20:28:25
【问题描述】:
我不明白为什么我的 Kendo 自动完成小部件没有将请求中的授权标头发送到服务器:
var dataSource = new kendo.data.DataSource({
type: 'odata',
serverFiltering: true,
transport: {
read: {
url: myApiUrl,
type: 'GET',
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', myAuthorizationValue);
}
}
}
});
$('#myAutocompleteField').kendoAutoComplete({
dataTextField: 'fieldName',
filter: 'contains',
minLength: 3,
dataSource: dataSource
});
当我在开发工具中检查服务器响应时,我收到来自服务器的 401 Unauthorized 错误。查看请求标头,我根本看不到 Authorization 属性。
我需要做些什么才能让 Authorization 标头包含在请求中?
更新:
我一直在探索这个问题。如果我只是在 Kendo DataSource 参数中使用与 transport.read 相同的对象执行典型的 $.ajax 请求,它会发送标头并获得成功的响应。
$.ajax({
url: myApiUrl,
type: 'GET',
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', myAuthorizationValue);
},
success: function(res) {
console.log('success!');
console.log(res);
}
});
【问题讨论】: