DarQ
DarQ

Reputation: 31

"No 'Access-Control-Allow-Origin' header is present on the requested resource." when making "GET" request

I'm using an HTTP-request in order to get Google's autocomplete suggestions, here's what inspired me to do so:

You can make a GET request to the following URL:

http://suggestqueries.google.com/complete/search?client=chrome&q=cats

Where "client" param is your browser's name (works with most but you may pass >the same type disregarding what the user is currently on and it will still work).

And "q" param is your search string.

This will return you a list of suggested items which you can then put into a jQuery autocomplete plugin or build your own (you can't just get the whole >google dropdown interface to popup with a single function sadly :) )

(src: Add Google autocomplete to Google search bar?)

I'm using this function to get Google's response text:

function httpGetAsync(theUrl, getGoogle){
   var xmlHttp = new XMLHttpRequest();
   xmlHttp.onreadystatechange = function() { 
      if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
         getGoogle(xmlHttp.responseText);
   }
   xmlHttp.open("GET", theUrl, true); // true for asynchronous
   xmlHttp.send(null);
}

However, when the funtion is executed, CORS seems to prevent me from getting a response: Failed to load http://suggestqueries.google.com/complete/search?client=chrome&q=xx: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.

Is there a way of adding an 'Access-Control-Allow-Origin' header to the resource?

Upvotes: 1

Views: 1306

Answers (1)

getl0st
getl0st

Reputation: 342

You cannot make a request to another domain from the users browser, unless the source has the Access-Control-Allow-Origin header for your domain. In conclusion, you cannot make the request on the users part without using some kind of proxy, like this one:

https://cors-anywhere.herokuapp.com/

Example:

url: https://cors-anywhere.herokuapp.com/https://google.com

Upvotes: 2

Related Questions