【发布时间】:2019-03-19 09:15:51
【问题描述】:
更新
所以,我尝试使用 ajax 的原因是登录表单,当用户在应用程序中打开 SSRS 报告时会显示该表单。我有报告框架(两个不同的服务器),并希望在应用程序中对用户不可见授权。对于第一台服务器 - kuybit 我有它,但 SSRS 有其他身份验证表单类型,我遇到了麻烦。 如果有人知道更好的方法,除了 ajax 请求它可以提供帮助。
旧 Q 版
我在 iframe 中有用于 BI 报告的应用程序和 microsoft 服务器。 我正在尝试向报表服务器发送跨域 ajax 请求,但它不起作用,因为跨域的第一个请求是 OPTIONS。而我的ajax从来没有 工作。 我的ajax请求:
var path = route + ':444/ReportServer/Pages/ReportViewer.aspx' + reportName + '&rs:Command=Render&rc:stylesheet=HideToolBar';
$.ajax({
url: path,
type: 'GET',
headers: {
'Access-Control-Allow-Headers': 'Authorization',
'Content-Type':'application/xml',
'Authorization' : 'Basic ' + btoa(ssrs_login + ":" + ssrs_password)}
}).success(function (data) {
//todo smth
});
有人可以帮忙吗,拜托。
【问题讨论】:
-
服务器是否接受跨域请求?服务器上是否启用了 CORS?你从服务器得到什么响应?
-
@AdamD 我收到了“401 未经授权”的回复。关于服务器 - 在你的问题之后不确定
-
CORS is Cross-Origin Resource Sharing 可以通过查看标题来确定。您可以通过查看开发人员工具在 chrome 或 Internet Explorer 中查看这些标题。我对 SSRS 了解不多,但根据这个 stackoverflow 帖子Enable CORS for Reporting Services,似乎 SSRS 对 API 不友好。
-
@jeffld 感谢。也许你知道我如何在没有 cors ajax 的情况下解决它(见更新的问题)?
-
我认为身份冒充可能是一种可能性。这个post 有一些关于模拟报告服务的信息。
标签: javascript java ajax cross-domain ssrs-2012