ajax - 需要通过 Azure AD 进行身份验证的应用程序中的动态更新页面
问题描述
我很好奇是否有人对这种独特情况有解决方案,因为我目前有解决方案,尽管我觉得这不是最理想的。
情况。 我已经构建了一个 MVC 风格的 Web 应用程序,它通过 http(通过 JWT 进行身份验证)与 Web API 对话。我的 Web 应用程序通过将授权附加到其视图控制器并重定向到 Microsoft 登录端点来保护我的 Web 应用程序 - 然后返回到视图,无论给定的控制器/函数在哪里处理请求、连接到 API、将数据附加到视图等。
最好我想使用 JQuery/Ajax 在客户端提交 http 请求,并使用用户可能希望看到的相对于他们所在网页的任何数据更新给定视图。通过这种方式,我可以准确控制用户应该以何种方式登陆页面并将请求从 Web 应用程序提交到 API。也可以在请求之间实现更好的连续性,因为实际上并没有完全刷新视图。总而言之,我的想法是这种执行将带来良好的用户体验。
问题。 因此,我不得不规避的最大问题是 CORS 政策。正如我上面所说的,我最初尝试使用 JS,但是由于请求中没有附加 CORS 标头,请求将被重定向到登录端点并被阻止。
“因此,在您的应用程序中包含一个策略并将一个授权标头附加到您的 Ajax 传出请求”您可能会说,嗯……您不能覆盖 Microsoft 登录端点周围的 CORS 安全性。
我的解决方案。 我所做的只是围绕用户选择并选择的字段创建 HTML 表单,以指定他们想要从 API 获得的数据。然后通过“ViewData”将输入数据传递到返回的视图
当然,使用剃须刀页面我实际上可以通过 C# 输入初始化 JS 变量。
旁注 我使用 JS 将 API 数据转换为图形供用户查看。我正在使用 JavaScript 库执行此操作。
我的问题给你。 这一切都让我问,有没有办法在不使用 JS 的情况下动态更新视图?我需要一种可以点击登录重定向而不会因为请求在客户端启动而被阻止的方法。
我知道的每个解决方案都以某种方式、形状或形式利用 JS 来提出请求。因此,我不知道如何真正获得我所追求的功能,而不会因为 CORS 政策而阻止我的请求。
提前谢谢大家。
解决方案
推荐阅读
- heroku - 使用 Namecheap 和 Heroku 强制 HTTPS
- functional-programming - 示例 F#:求 1000 以下的所有奇数平方之和
- javascript - 防止 div 被其下方的 div 碰撞时向上滚动?
- javascript - JavaScript:隐藏下拉列表中的元素,除了一个
- arrays - 未按数组顺序处理 For 循环
- javascript - 如何使用 MongoDB 存储和检索格式化文本
- ruby-on-rails - 在 Rails 6 上未触发 before_save 回调
- sql-server - 带参数的 SQL Server 存储过程(用于按路径输入图像)不起作用
- java - 使用 Java 流拆分字符串、对其进行平面映射和创建对象?
- python - 在 Tensorflow 2.0 中使用 GradientTape() 和 jacobian() 时出错