Исключение CORS: не удалось загрузить https://login.microsoftonline.com/{TENANT_ID}/oauth2/authorize - PullRequest
0 голосов
/ 22 октября 2018

Это проект ASP.NET MVC с аутентификацией типа работа / школа.

Контроллер

using Nasi.AzureConn;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Nasi.Controllers
{
    public class JimmyController : Controller
    {
        public ActionResult GetAllSubscriptions()
        {
            //The below line is where the ttps://login.microsoftonline.com/{TENANT_ID}/oauth2/authorize?client_id={CLIENT_ID}
            //is being called
            AzureAuth aAuth = AzureAuth.GetAzureAuthorization(Session, HttpContext.GetOwinContext());
            AzureConn aConn = AzureConn.GetAzureConnection(Session, aAuth);
            var subscriptions = aConn.GetAllSubscriptions();
            return Json(subscriptions, JsonRequestBehavior.AllowGet);
        }
    }
}

.cshtml

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">

    <p>Data:</p>

    <code>{{az_data}}</code>

</div>

<script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function ($scope, $http) {
        $http.get("/Jimmy/GetAllSubscriptions")
            .then(function (response) {
                $scope.az_data = response.data;
            });
    });
</script>

Я немного запутался, почему я получаю Failed to load https://login.microsoftonline.com/{TENANT_ID}/oauth2/authorize?client_id={CLIENT_ID}&response_mode=form_post&response_type=code%20id_token&scope=openid%20profile&state=OpenIdConnect.AuthenticationProperties%3{SOME RANDOM VALUE}&x-client-SKU=ID_NET451&x-client-ver=5.2.1.0: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://localhost:44320' is therefore not allowed access., потому что аутентификация обрабатывается контроллером, который он сам,Когда я отлаживаю контроллер var subscriptions = aConn.GetAllSubscriptions(); получил те данные, которые были предназначены.

Может кто-нибудь просветить меня в этом?

1 Ответ

0 голосов
/ 23 октября 2018

Это проблема с CORS, вам нужно разрешить CORS.

Мы можем сделать это, изменив файл Web.config, как показано ниже:

<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...