2017-08-22 2 views
1

J'ai essayé de placer des données dans l'en-tête. Par exemple: header ('Access-Control-Allow-Origin: *'); etc mais je reçois une erreur: "Réponse à la demande de contrôle en amont ne passe pas le contrôle de contrôle d'accès".J'essaie d'obtenir le nom de pays d'un www.geoplugin.net en donnant l'adresse IP en entrée. Il montre l'erreur dans la console

var ip_address = $('#ip_address').val(); 
$.ajax({ 
    url: 'http://www.geoplugin.net/json.gp?ip='+ip_address, 
    success: function(output) { 
     $('#country_name').val(JSON.parse(output).geoplugin_countryName); 
    } 
}); 
+0

Veuillez lire ceci: h ttps: //stackoverflow.com/questions/10636611/how-does-access-control-allow-origin-header-work Et solution peut-être est-ce: https://stackoverflow.com/a/11691776/2282880 – Meloman

Répondre

2

Il semble que vous essayez d'obtenir le nom de pays à partir de l'adresse IP de geolugin.net. Au lieu d'un appel ajax, vous pouvez essayer ce code. Cela fonctionne de moi.

$.getJSON("https://cors-anywhere.herokuapp.com/http://www.geoplugin.net/json.gp?ip="+$('#ip_address').val(),function(response){ 
     $('#country_name').val(response.geoplugin_countryName); 

    }); 
+0

Oui J'essayais d'obtenir le nom du pays de l'adresse IP des visiteurs sur mon site Web et votre solution fonctionne. Merci de votre aide. –

2

Pour jQuery:

// In this example, if you make an ajax request to the following website 
var myUrl = 'http://www.geoplugin.net/json.gp?ip=216.58.209.68'; 
// But if you make it from a browser, then it will work without problem ... 

// However to make it work, we are going to use the cors-anywhere free service to bypass this 
var proxy = 'https://cors-anywhere.herokuapp.com/'; 

$.ajax({ 
    // The proxy url expects as first URL parameter the URL to be bypassed 
    // https://cors-anywhere.herokuapp.com/{my-url-to-bypass} 
    url: proxy + myUrl, 
    complete:function(data){ 
     console.log(data); 
    } 
}); 

ou en utilisant les raccourcis de .get $, .getJSON $ ou .post $:

var myUrl = 'http://www.geoplugin.net/json.gp?ip=216.58.209.68'; 

var proxy = 'https://cors-anywhere.herokuapp.com/'; 

var finalURL = proxy + myUrl; 

// With the get JSON (frequently used) method 
$.getJSON(finalURL, function(data) { 
    console.log(data); 
}); 

// With the get method 
$.get(finalURL, function(data) { 
    console.log(data); 
}); 

// With the post method 
$.post(finalURL, function(data) { 
    console.log(data); 
});