我有一个网站试图在另一个网站上调用 MVC 控制器操作。这些站点都设置为 AD FS 2.0 中的信赖方信任。在两个站点之间的浏览器窗口中打开页面时,一切都经过身份验证并且工作正常。但是,当尝试使用 jQuery AJAX 方法从 JavaScript 调用控制器操作时,它总是失败。这是我正在尝试做的代码片段......
$.ajax({
url: "relyingPartySite/Controller/Action",
data: { foobar },
dataType: "json",
type: "POST",
async: false,
cache: false,
success: function (data) {
// do something here
},
error: function (data, status) {
alert(status);
}
});
问题是 AD FS 使用 JavaScript 向依赖方发布隐藏的 html 表单。当使用 Fiddler 进行跟踪时,我可以看到它到达 AD FS 站点并返回此 html 表单,该表单应该发布并重定向到经过身份验证的控制器操作。问题是该表单作为 ajax 请求的结果返回,并且显然会因解析器错误而失败,因为 ajax 请求需要来自控制器操作的 json。这似乎是一种常见的情况,那么从 AJAX 与 AD FS 通信并处理此重定向的正确方法是什么?