I am using Google Place API.
What I want to get suggestion of place for type helping.
So, what I have done is-
var Google_Places_API_KEY = "AIzaSyAK08OEC-B2kSyWfSdeCzdIkVnT44bcBwM"; //Get it from - https://code.google.com/apis/console/?noredirect#project:647731786600:access var language = "en"; //'en' for English, 'nl' for Nederland's Language var Auto_Complete_Link = "https://maps.googleapis.com/maps/api/place/autocomplete/json?key="+Google_Places_API_KEY+"&types=geocode&language="+language+"&input=Khu"; $.getJSON(Auto_Complete_Link , function(result) { $.each(result, function(i, field) { //$("div").append(field + " "); //alert(i + "=="+ field); console.error(i + "=="+ field); }); });
So in what link I am requesting is -
https://maps.googleapis.com/maps/api/place/autocomplete/json?key=AIzaSyAK08OEC-B2kSyWfSdeCzdIkVnT44bcBwM&types=geocode&language=en&input=Khu
And if I go to this link with browser, I can get output like it (please try to ck)-
But if I try with jQuery's .getJSON or .ajax, I am getting my request blocked with this message-
.
SO the XMLHTTPRequest is blocked because of -
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
I have checked in StackOverflow for this problem solution and go through here and here, but can't get my solution perfectly.
Can anyone please enlighten me?
< access-control-allow-origin: * You can solve this temporarily by using the Firefox add-on, CORS Everywhere. Just open Firefox, press Ctrl+Shift+A , search the add-on and add it! Thanks this helps to avoid all the hassle and test the code from localhost.
Google APIs support requests and responses using Cross-origin Resource Sharing (CORS). You do not need to load the complete JavaScript client library to use CORS. If you want your application to access a user's personal information, however, it must still work with Google's OAuth 2.0 mechanism.
This error occurs when a script on your website/web app attempts to make a request to a resource that isn't configured to accept requests coming from code that doesn't come from the same (sub)domain, thus violating the Same-Origin policy.
I got it working after finding answer by @sideshowbarker here:
No 'Access-Control-Allow-Origin' header is present on the requested resource—when trying to get data from a REST API
And then used this approach to get it working:
const proxyurl = "https://cors-anywhere.herokuapp.com/"; const url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=${latitude},${longitude}&radius=500&key=[API KEY]"; // site that doesn’t send Access-Control-* fetch(proxyurl + url) // https://cors-anywhere.herokuapp.com/https://example.com .then(response => response.json()) .then(contents => console.log(contents)) .catch(() => console.log("Can’t access " + url + " response. Blocked by browser?"))
More info can be found in the answer in link above.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With