Кроссдоменный запрос

M9
На сайте с 15.05.2014
Offline
79
865

Что с запросом что я делаю не так:

// (1)

var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;

var xhr = new XHR();

// (2) запрос на другой домен :)
xhr.open('GET', 'https://clients1.google.com/complete/search?q=asd&client=translate-web&ds=translate&hl=zh&requiredfields=tl%3Aru&callback=_callbacks____2jb907enn', true);

xhr.onload = function() {
alert( this.responseText );
}

xhr.onerror = function() {
alert( 'Ошибка ' + this.status );
}

xhr.send();

почему кроссдоменный запрос возвращает ошибку, и как будет правильным?

U
На сайте с 16.12.2017
Offline
0
#1

Страница, на которую Вы отправляете запрос - не даёт ответы другим доменам

Samail
На сайте с 10.05.2007
Offline
361
#2
mega94:
почему кроссдоменный запрос возвращает ошибку

Видимо Гугл не давал разрешения делать запросы с твоего домена. Что-бы работало он должен вернуть "Access-Control-Allow-Origin: http://твой_домен.ru".

M9
На сайте с 15.05.2014
Offline
79
#3

ну а c которого домена можно мне для примера, так как пробовал и на других доменов, все равно ответ ошибка.

webiumpro
На сайте с 20.03.2017
Offline
39
#4

mega94, а что вы вообще пытаетесь получить по этому запросу?

Некоторые API гугла привязываются к конкретному домену, может в этом дело.

Копирование лендингов. Разработка на фреймворке сервисов. Создание сайтов (/ru/forum/994418)
M9
На сайте с 15.05.2014
Offline
79
#5
webiumpro:
mega94, а что вы вообще пытаетесь получить по этому запросу?
Некоторые API гугла привязываются к конкретному домену, может в этом дело.

Честно сказать мне интересно вот этот адрес

webiumpro
На сайте с 20.03.2017
Offline
39
#6
mega94:
Честно сказать мне интересно вот этот адрес

Гугл говорит, что это интернет-магазин. Если этот магазин не предоставляет открытый API, то вероятно у него стоит защита на кросдоменные запросы.

А почему именно через js пытаетесь обращаться? Попробуйте сделать что-то вроде прослойки: обращайтесь через ajax (если он так необходим) к узлу своего сервера, а он уже будет по этому запросу вытаскивать нужные данные и отдавать на клиент.

M9
На сайте с 15.05.2014
Offline
79
#7

Потому что, это китай, а туда плохие связи, сервер у меня нагружается, пока ждет ответа.

webiumpro
На сайте с 20.03.2017
Offline
39
#8
mega94:
Потому что, это китай, а туда плохие связи, сервер у меня нагружается, пока ждет ответа.

Пытайтесь значит как-то оптимизировать запрос или купите сервер помощней. С клиента, судя по всему, вам данные получить не удастся.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий