Deployment Architecture
Highlighted

Request to port 8089 from 8000

Engager

From my Splunk app, I am running into a cross origin error when I try to request the port 8089 from the port 8000

Here is the error:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access.

I tried to configure server.conf setting crossOriginSharingPolicy = "http://localhost:8000"

But it doesn't seem to work so far. If I use a chrome CORS plugin it works fine though.

Any idea?

Thanks

Highlighted

Re: Request to port 8089 from 8000

Contributor

Use a general approach like "*" as demonstrated at http://dev.splunk.com/view/webframework-developapps/SP-CAAAEW6

0 Karma
Highlighted

Re: Request to port 8089 from 8000

Path Finder

Hi, did you find the solution?

0 Karma
Highlighted

Re: Request to port 8089 from 8000

Path Finder

In order to get it done, you have to configure server.conf setting crossOriginSharingPolicy = http://localhost:8000 change to match yours. Following code was fine to me in the JS.

But if you are trying to consume the webservice from SplunkWeb to Splunkd, I strongly recommend you to expose the endpoint in your web.conf and the acces it through localhost:8000/en-US/splunkd/__raw/services/custom_service in order to avoid CORS headers problems.

For web.conf

[expose:echo_persistent]
methods = POST
pattern = echo_persistent

This code was fine to me

var text = $("#text").val();
            var xhr = new XMLHttpRequest();
             xhr.open('POST', '/en-US/splunkd/__raw/services/custom_service', true);
             xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
             xhr.setRequestHeader('X-Splunk-Form-Key', document.cookie.match(/splunkweb_csrf_token_8000=(\d+)/)[1]); 
             xhr.send(text);

You can search for splunkrestexamples for further information.

0 Karma