2015-07-09 1 views
2

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

XMLHttpRequest не может загрузить https://localhost:8089/services/auth/login. Нет заголовка «Access-Control-Allow-Origin» на запрашиваемом ресурсе . 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); 

}); 

}); 

Как я могу обойти вопрос?

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

ответ

1

От Splunk dev site:

веб-приложения, которые работают за пределами Splunk Web необходимо использовать прокси-сервер или кросс-происхождения совместного использования ресурсов (CORS) для связи с сервером Splunk в связи с Same Origin Policy (СОП) политики безопасности браузера.

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

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

[httpServer] 
crossOriginSharingPolicy = your_site_address 
+0

Спасибо Хейли. Я дам ему попробовать. –