2013-06-24 16 views
6

sto creando un sito Web in cui il back-end che ho creato è in django e il front-end utilizza php. Il problema è che sto cercando di fare una chiamata AJAX da php (localhost) a django (localhost:8000 ogni volta che provo in modo che dà mes il seguente errorechiamata ajax non funziona quando si tenta di inviare dati a localhost: 8000 da localhost

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

il codice 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); 
      } 
     }); 


}); 

come posso fare una chiamata AJAX dal mio front-end al backend django su localhost: 8000

risposta

0

AJAX, per impostazione predefinita, non può fare le richieste cross-domain.

È necessario fare riferimento a questo link.

1

1) php non effettua richieste ajax. php viene eseguito sul lato server; javascript viene eseguito sul lato client, ed è js che fa richieste ajax al server.

2) js non consente di effettuare richieste ajax a un host diverso da quello da cui è stata ottenuta la pagina corrente.

-1

prova, qualcosa di simile a:

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

si deve solo usare un percorso relativo.

0

Ho scambiato il mio IP interno (192.168.1.x) al posto di localhost ed è stato in grado di richiamare un XMLHttpRequest su di esso. Questo dovrebbe fare il trucco senza scherzare con la politica dell'origine incrociata.

Problemi correlati