2015-07-02 25 views
7

Attualmente sto usando jQuery AJAX per OTTENERE un URL relativo, senza schema/dominio di fronte (es. '/ Js/get_international_popup /'. La risposta è anche un URL relativo quando visualizzo la mia intestazione di posizione prima di restituirlaRisposta XHR bloccata da Chrome, a causa di problemi con i contenuti misti (http/https)

Quando eseguo il test localmente, tramite HTTP, tutto funziona come dovrebbe, tuttavia, una volta eseguito il test sul mio server live, su HTTPS la risposta è bloccato da Chrome, perché si dice che è insicuro:

contenuto misto: la pagina all'indirizzo 'https://example.com/' è stato caricato tramite HTTPS, ma ha richiesto un'endpo XMLHttpRequest insicuro int 'http://example.com/js/get_international_popup/'. Questa richiesta è stata bloccata; il contenuto deve essere pubblicato su HTTPS.

Dal punto di vista di Chrome, la mia richiesta/risposta di test locale è passata su HTTP, ma la mia richiesta di test dal vivo è passata su HTTPS e ha ottenuto una risposta HTTP. Non riesco a visualizzare la risposta di Chrome sul server live, perché è bloccata.

Se restituisco una risposta con un URL assoluto (incluso https://domain), tutto sembra funzionare correttamente, ma preferisco non utilizzare URL assoluti.

Qualcuno sa se esiste un modo per risolvere questo problema utilizzando gli URL relativi?

+0

puoi pubblicare il codice della tua chiamata AJAX per favore? –

risposta

0

anteporre questo utilizzando JavaScript:

var relative_url = '/js/get_international_popup/'; 
var absolute_url = window.location.origin + relative_url; 
$.ajax(absolute_url, function(){}); 

Rif: http://www.w3schools.com/jsref/prop_loc_origin.asp

Nota: Non testato