CORS 预检问题

CORS Prelight Issue

我在 jQuery 调用我的 azure 应用程序代理

时遇到以下错误

XMLHttpRequest 无法加载 https://azentsearchdev01-mytenant.msappproxy.net/search?text=mytext&type=json&callback=json_callback。 预检响应无效(重定向)

这就是我正在做的

  1. 从 mytenantsite.sharepoint.com,调用 jQuery 调用以下 url - https://azentsearchdev01-mytenant.msappproxy.net

    [ 上的 Azure 应用程序=49=]
  2. 作为通话的一部分,我正在使用来自 Azure AD 的身份验证令牌(访问令牌)设置授权 header

  3. jQuery 调用失败,302 重定向到 https://login.microsoftonline.com/

这是我的代码

//authorization context
var resource = 'https://azentsearchdev01-mytenant.msappproxy.net/';
var endpoint = 'https://azentsearchdev01-mytenant.msappproxy.net/search?text=mytext&type=json&callback=json_callback';
   
var authContext = new AuthenticationContext({
        instance: 'https://login.microsoftonline.com/',
        tenant: 'mytenant.onmicrosoft.com',
        clientId: 'guid for client id',
        postLogoutRedirectUri: window.location.origin,
        cacheLocation: 'localStorage'
    });

//save tokens if this is a return from AAD
authContext.handleWindowCallback();

var user = authContext.getCachedUser();
if (user) {  //successfully logged in
    authContext.acquireToken("https://graph.windows.net", function (error, token) {
      if (error || !token) {
         jQuery("#loginMessage").text('ADAL Error Occurred: ' + error);
             return;
      }

      $.ajax({
        type: 'GET',
     url: endpoint,
  headers: {
           Accept: 'application/json',
           },
    beforeSend: function(xhr, settings) { 
   xhr.setRequestHeader('Authorization','Bearer ' + token); 
     }
        }).done(function (data) {
                jQuery("#loginMessage").text('success');
               }).fail(function (err) {
                jQuery("#loginMessage").text('Error calling endpoint: ' + err.statusText); **-->This is where the code lands**
               }); 

到目前为止-

根据我所读到的内容,这是浏览器处理 CORS 预检重定向的当前状态的已知差距。参考 .

问题-

是否有任何选项可以成功调用需要 cors 预检重定向的应用程序?

为了解决Azure AD应用代理的CORS问题,我们可以为Azure AD应用代理开发一个代理。

而且如果有人想要Azure AD应用代理支持CORS,可以通过this link投票。