Archives of Support Questions (Read Only)

This is an archived board for historical reference. Information and links may no longer be available or relevant
Announcements
This board is archived and read-only for historical reference. To ask a new question, please post a new topic on the appropriate active board.

Atlas Cross Origin CORS

avatar

Hello,

I would like to access to Apache Atlas via a XmlHtttRequest object. It doesn't work:

Access-Control-Allow-Origin is missing.

Thks for your help.

1 ACCEPTED SOLUTION

avatar
Expert Contributor
Try adding CORS related headers here and recompile atlas project.
responseWrapper.setHeader("Access-Control-Allow-Origin", "*"); 
responseWrapper.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS, HEAD, PUT, POST");

This should work.

View solution in original post

4 REPLIES 4

avatar
Expert Contributor

@Smart Data,

Can you please give more details on how are you trying to access and error you are getting?

Nixon

avatar

Hello @Nixon Rodrigues

My snippet code :

<html>
<head>
</head>
<body>
<h1>TEST</h1>
<script type="text/javascript">
    var myTestRequest = function() {
        var myUrl = "http://SERVER_IP:21000/api/atlas/types/";
        //Instantiate HTTP Request
        var request = ((window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"));
        request.open("GET", myUrl, true);
        request.setRequestHeader("Content-Type","application/json");
        //request.channel.QueryInterface(Components.interfaces.nsIHttpChannel).redirectionLimit = 0;

        request.setRequestHeader("Authorization", "Basic " + btoa("admin:admin"));
        //request.withCredentials = true;
        request.send(null);
    }
</script>
    <div id="myTestRequest" style="display: block">
      <button onclick="myTestRequest()">Login</button>
    </div>
</body>
</html>

Error (in attached file):

XMLHttpRequest cannot load http://SERVER_IP:21000/api/atlas/types/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://SERVER_IP:8000' is therefore not allowed access. The response had HTTP status code 400.

Thank you for your help.


cors.jpg

avatar
Expert Contributor
Try adding CORS related headers here and recompile atlas project.
responseWrapper.setHeader("Access-Control-Allow-Origin", "*"); 
responseWrapper.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS, HEAD, PUT, POST");

This should work.

avatar

@Nixon RodriguesThank you so much for your help. It will try it; it should work.

May we shoud notify a JIRA ? Or Pull Request on github for this change.

It should better if we could put this on atlas-application.properties.

Best regards