#javascript #ajax #web-services #cors #google-fusion-tables
#javascript #ajax #веб-сервисы #cors #google-fusion-tables
Вопрос:
Судя по комментариям к выпуску 554, я бы подумал, что таблицы слияния поддерживают запросы CORS. Попытка выполнить следующее, однако, выдает межсайтовую ошибку (в Chrome):
xhr = new XMLHttpRequest()
xhr.open("GET","http://www.google.com/fusiontables/api/query?sql=SELECT * FROM 1906375")
xhr.send()
Ошибка: исходный http: // [домен] не разрешен Access-Control-Allow-Origin.
Следующий пример работает нормально (для сравнения), простая страница PHP, где я устанавливаю заголовок «CORS» и повторяю исходный сервер, например: «привет example.com «:
xhr = new XMLHttpRequest()
xhr.open("GET","http://skipperkongen.dk/services/corstest/hellocors.php")
xhr.send()
Я должен признать, что я нигде не нашел в Интернете, в котором явно указано, что fusion tables поддерживает CORS, но я ожидаю этого (судя также по комментариям в выпуске)…
Я делаю это неправильно?
Комментарии:
1. Вот запрос curl, который показывает, что заголовок Access-Control-Allow-Origin не возвращается в ответе. Однако я ничего не знаю о состоянии поддержки CORS в таблицах слияния: curl -H «Происхождение: foobar.com Пользовательский агент » -H»: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit / 535.1 (KHTML, как Gecko) Chrome / 14.0.835.202 Safari / 535.1 » » google.com/fusiontables/api/query?sql=SELECT * ИЗ 1906375″ — подробный
2. Хм, да, это тоже был мой вывод. Я нахожу это немного странным, было бы так легко вставить этот заголовок Access-Control-Allow-Origin в ответы, и это значительно улучшило бы продукт IMO.
3. Кстати, думаю, вы смотрели на мою домашнюю страницу 🙂 выбор пользовательского агента. Что ж, рад, что кто-то это прочитал.
Ответ №1:
Заголовки были обновлены только для (недокументированного и подлежащего изменению) интерфейса JSONP:
http://www.google.com/fusiontables/api/query?sql=amp;jsonCallback =
Комментарии:
1. Мне это кажется странным выбором? Поскольку CORS и JSONP выполняют одно и то же, а именно межсайтовые вызовы веб-службы javascript. CORS будет иметь значение именно для интерфейса, отличного от JSONP, IMO. Спасибо за ваш ответ 🙂