0

我需要从视图中调用操作。我有两种方法:

  1. 通过使用 ajax
  2. 通过使用 HTML.ActionLink

出于某些特定原因,我想使用 ajax。现在的问题是,我调用的操作是使用 ADAL,因此,在 Azure AD 授权后,它会重定向到那里指定的返回 URI(在 MVC 中使用 RedirectResult)。检查此链接以获取完整的 ADAL 代码。

现在的问题是,如果我使用选项 2 ieHTML.ActionLink但不适用于 ajax,则整个过程都可以正常工作。在 ajax 中,它永远不会到达CatchCodeazure AD 中指定的返回 uri(如果您检查上面提到的链接,这是函数),但是,在提琴手中,两个选项的 url 形成相同。

有什么帮助吗?我希望我是有道理的。

编辑:我正在使用的 Ajax 代码是

$.ajax({
        url: '/Home/About',
        data: { id: someKey },
        cache: false,
        type: "POST",
        success: function (data, textStatus, XMLHttpRequest) {
            //dosomething
        },
        error: function (jqXHR, textStatus, errorThrown) {
            //dosomething
            console.log(errorThrown);
        },
        complete: function () {
            //dosomething
        }
    });
4

1 回答 1

0

@Garima,这不是 OneNote 特定的问题,我也不是 AAD Auth 专家,但我会尽力回答。您在进行 OAuth 调用时是否使用 response_type 'code'?如果是这样,您已经实现了 OAuth 授权代码授权流程,这将在服务器端运行良好。如果您想从客户端(又名 Ajax)执行 OAuth,您将需要实现 OAuth 客户端凭据授予流程。您可以在以下位置阅读有关 2 个流程的信息:

尝试使用 ajax 的客户端凭据授予流程。

于 2015-09-29T14:38:50.633 回答