Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ajax call not working when trying to send data to localhost:8000 from localhost

Tags:

ajax

php

django

When I'm trying to make an AJAX call from php (localhost) to django (localhost:8000), it throws the following error.

XMLHttpRequest cannot load http://localhost:8000/project/login/uid=bimt;token=KAMWMS151UWP67Q. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

$(document).on('click', '.login', function(event) {
    var username = $('#username').val();
    var token = $('#token').val();
    $.ajax({
       type: "POST",
       url: "http://localhost:8000/project/login/uid=" + username + ";token=" + token,
       success: function (html) {
         alert(html);
        }
     });
});
like image 444
user1001176 Avatar asked Jun 24 '13 22:06

user1001176


2 Answers

Because the port is not the same, it's considered a cross origin request. You must set a Access-Control-Allow-Origin header in the script you are requesting.

Learn more:

http://enable-cors.org/server.html

or, specifically for django:

http://chase-seibert.github.io/blog/2012/01/27/using-access-control-allow-origin-to-make-cross-domain-post-requests-from-javsacript.html

like image 174
Tamás Pap Avatar answered Sep 18 '22 02:09

Tamás Pap


1) php does not make ajax requests. php executes on the server side; javascript executes on the client side, and it is js that makes ajax requests to the server.

2) js does not allow you to make ajax requests to a different host than the one from which the current page was obtained from.

like image 40
7stud Avatar answered Sep 18 '22 02:09

7stud