ajax-вызов не работает при попытке отправить данные на localhost: 8000 из localhost

Я делаю веб-сайт, на котором я сделал задний конец, в django, а в интерфейсе используется php. Проблема в том, что я пытаюсь сделать вызов ajax из php (localhost) в django (localhost:8000 всякий раз, когда я пытаюсь сделать так, что он дает mes следующую ошибку

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

код ajax

 $(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); } }); }); 

как я могу сделать ajax-вызов от моего интерфейса до бэкэнда django на localhost: 8000

Related of "ajax-вызов не работает при попытке отправить данные на localhost: 8000 из localhost"

Поскольку порт не является тем же, он считается запросом на перекрестный поиск. Вы должны установить заголовок Access-Control-Allow-Origin запрошенном скрипте.

Выучить больше:

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

или, в частности, для django:

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

1) php не делает запросы ajax. php выполняется на стороне сервера; javascript выполняется на стороне клиента, и именно js делает запросы ajax на сервер.

2) js не позволяет вам делать ajax-запросы другому хосту, чем тот, из которого была получена текущая страница.

По умолчанию AJAX не может выполнять междоменные запросы.

Вы должны обратиться к этой ссылке .

Я заменил свой внутренний IP (192.168.1.x) вместо локального хоста и смог вызвать на нем XMLHttpRequest. Это должно сделать трюк, не вникая в политику перекрестного происхождения.

Попробуйте, что-то вроде:

 $('#yourClickButtonId').click(function(){ $.ajax({ type: 'POST', url: 'project/login?uid='+$('#usename')+'&token='+$('#token'), success: function(data){ alert(data); } }); }); 

Вы должны просто использовать относительный путь.