I am trying to send an Ajax request to a Tomcat server from my application, but I am getting this error (my web app is running on Chrome):
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 403.
I have tried using
'Access-Control-Allow-Origin' : 'http://localhost:8080/app',
but it didn't work.
My Ajax code:
var arr = [1]; $.ajax({ url: 'http://localhost:8080/app', type: 'POST', contentType:'application/json', headers: { 'Access-Control-Allow-Origin' : 'http://localhost:8080', }, data: JSON.stringify(arr[0]), success: function(data){ //On ajax success do this alert(data); } });
If the server is under your control, add the origin of the requesting site to the set of domains permitted access by adding it to the Access-Control-Allow-Origin header's value. You can also configure a site to allow any site to access it by using the * wildcard. You should only use this for public APIs.
Basically, to make a cross domain AJAX requests, the requested server should allow the cross origin sharing of resources (CORS). You can read more about that from here: http://www.html5rocks.com/en/tutorials/cors/
In your scenario, you are setting the headers in the client which in fact needs to be set into http://localhost:8080/app server side code.
If you are using PHP Apache server, then you will need to add following in your .htaccess
file:
Header set Access-Control-Allow-Origin "*"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With