Использование AngularJS для подключения к REST API Splunk, как решить проблему CORS?

Когда я пытаюсь опубликовать данные из AngularJS, я получаю следующую ошибку.

XMLHttpRequest не может загрузить https://localhost:8089/services/auth/login. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Таким образом, доступ к источнику 'http://localhost:8080' запрещен.

Вот код angularjs

var app = angular.module('myApp', []);
sessionkey='';
var req = {
    method: 'POST',
    url: 'https://localhost:8089/services/auth/login',
    headers : {
      'Content-Type':'application/x-www-form-urlencoded',
      'Accept':'*/*'

    },
    data : {
      username : 'admin',
      password : 'admin',
      output_mode : 'json' 
    }
};



app.controller('myController', function($scope, $http) {
$http(req).success(function($scope, $http){
    sessionKey= retrieveSessionKey($scope, $http);

});

});

Как я могу обойти проблему?

Цените любой вклад!


person Murali Mohan    schedule 09.07.2015    source источник


Ответы (2)


С сайта разработки Splunk:

Веб-приложения, работающие за пределами Splunk Web, должны использовать прокси-сервер или совместное использование ресурсов между источниками (CORS) для связи с сервером Splunk из-за политик безопасности браузера Same Origin Policy (SOP).

Если вы используете CORS, вам необходимо настроить сервер Splunk, чтобы ваш веб-сайт мог взаимодействовать с ним с помощью соединения CORS. Для этого добавьте адрес своего веб-сайта в качестве доверенного источника HTTP в атрибут crossOriginSharingPolicy в файле конфигурации server.conf.

Например, добавьте этот раздел в файл конфигурации $SPLUNK_HOME/etc/system/local/server.conf, а затем перезапустите Splunk:

[httpServer]
crossOriginSharingPolicy = your_site_address
person Hayley Guillou    schedule 09.07.2015
comment
Спасибо Хейли. Я дам ему попробовать. - person Murali Mohan; 13.07.2015

Просто оставлю примечание для других людей, у которых все еще есть проблемы с CORS даже после настройки server.conf:

Я также настроил server.conf, web.conf и inputs.conf в $SPLUNK_HOME/etc/system/local/*.conf и добавил следующее:

В server.conf добавьте следующие строки

[httpServer] 
crossOriginSharingPolicy = *

В web.conf добавьте следующие строки

[settings]
crossOriginSharingPolicy = *

В inputs.conf добавьте следующие строки

[http]
crossOriginSharingPolicy = *

Я нашел эту информацию из ссылки страница ответов

После настройки все начало работать.

person Minjeong Choi    schedule 24.03.2020