当我尝试从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);
});
});
我如何解决这个问题?
感谢任何输入!
答案 0 :(得分:1)
在Splunk Web之外运行的Web应用程序需要使用代理服务器或跨源资源共享(CORS)与Splunk服务器进行通信,因为同源策略(SOP)浏览器安全策略。
如果您使用的是CORS,则需要配置Splunk服务器以允许您的网站使用CORS连接与其进行通信。为此,请将您的网站地址作为可信HTTP源添加到server.conf配置文件中的crossOriginSharingPolicy属性。
例如,将此节添加到$SPLUNK_HOME/etc/system/local/server.conf
配置文件,然后重新启动Splunk:
[httpServer]
crossOriginSharingPolicy = your_site_address
答案 1 :(得分:0)
即使在设置server.conf之后,仍然为仍然存在CORS问题的其他人留下笔记:
我还在$ SPLUNK_HOME / etc / system / local / *。conf中设置了 server.conf,web.conf和inputs.conf ,并添加了以下内容:
在server.conf下添加以下行
[httpServer]
crossOriginSharingPolicy = *
在web.conf下添加以下行
[settings]
crossOriginSharingPolicy = *
在inputs.conf下添加以下行
[http]
crossOriginSharingPolicy = *
找到了此信息
设置完成后,一切开始工作。