当我尝试访问这样的Kendo数据源时:
dataSource: {
transport: {
read: {
url: constructServerActionUrl(reportsController, getVisitorsAction),
dataType: "json",
data: {
start: $("#report-bar-start").val(),
end: $("#report-bar-end").val()
}
}
}
当有人试图访问数据源时,chrome会提示我输入用户名和密码。这不会发生在临时服务器和实时服务器上,只会发生在本地服务器和测试服务器上。我试过:
- 在IIS中启用匿名访问
- 在IIS中启用Windows身份验证
- 授予IUSR帐户对应用程序中所有文件的读取访问权限
- 将应用程序池标识设置为管理员帐户
- 停止和启动IIS
虽然这显然是IIS配置问题,但我想知道是否有任何方法可以保证此问题永远不会发生,例如,在发出数据源请求之前,在datasource的"read"属性中指定一个"no authorization"标头。像这样的东西(不起作用):
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'None');
或者,可能是什么其他IIS设置导致了这种情况?
问题是我的控制器被称为"reports",如果它碰巧在机器上运行,它会与SQL server报告服务发生令人难以置信的冲突。我更改了控制器名称,现在一切正常。