Как вызвать веб-API с методом GET базовой аутентификации в jquery () в javascript - PullRequest
0 голосов
/ 15 ноября 2018

Здравствуйте, я использую этот метод, чтобы прочитать этот API, который дает ошибку CORS. Я добавил плагин CORS с хромом, то это также не идет. Пожалуйста, дайте мне знать, как решить эти ошибки.

Текст:

 function NoCors() {
        debugger;
        var uName = "*****";
        var passwrd = "*****";
        document.write("Enter1");
        var url = 'http://219.90.67.163:8207/api/Info/getgismeterdata'
        $.ajax({
            type: 'GET',
            url: url,
            crossDomain: true,
            //Access-Control-Allow-Credentials: true,
            contentType: 'json',
            datatype: "application/json",
            headers: {
                "Authorization": "Basic QXBpVXNlcjpBcGlQYXNz",
            },

            beforeSend: function (xhr) {
                xhr.setRequestHeader('Authorization', "Basic " + btoa(uName + ":" + passwrd));
            },
            success: function (data) {
                debugger;
                console.log("data")
                //Success block 
            },
            error: function (xhr, ajaxOptions, throwError) {
                //Error block 
            },
        });
    }

ошибка в консоли: 1. Не удалось загрузить ресурс: сервер ответил со статусом 405 (метод не разрешен) 2. Доступ к XMLHttpRequest по адресу http://219.90.67.163:8207/api/Info/getgismeterdata' от источника 'http://localhost:50362' заблокирован политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: не имеет статуса HTTP ok.

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018
  1. Используете ли вы аутентификацию токена на предъявителя? Заголовки запроса попробуйте это

    заголовки: { «Авторизация»: «Носитель QXBpVXNlcjpBcGlQYXNz», },

  2. Вы должны установить CORS в веб-API

https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api

0 голосов
/ 15 ноября 2018

Плагин CORS, который вы используете, работает только для Простые запросы .

Поскольку вы устанавливаете заголовок Authorization, вы делаете Предварительно просвеченный запрос , который не может обработать ваш плагин.

Вам нужен другой подход к обработке одной и той же политики происхождения. В идеале это была бы правильная поддержка CORS на сервере, к которому вы делаете HTTP-запрос, но некоторые другие параметры перечислены в конце этого ответа .

0 голосов
/ 15 ноября 2018

Перед отправкой запроса GET на сервер браузер автоматически отправляет и предварительно просматривает запрос OPTIONS, и ваш сервер не разрешает этот метод.Вам необходимо включить OPTIONS метод поддержки на вашем сервере (219.90.67.163)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...