русский
Germany.ruForen → Архив Досок→ Programmierung

$.getJSON

910  
voxel3d патриот05.08.11 03:58
voxel3d
NEW 05.08.11 03:58 
Весь моск съело. jQuery:
$.getJSON('http://anotherdomain/script.php?callback=?', 
function(data) {
alert(data.result);
});


script.php:

<?
$a = array();
$a['result'] = 777;
// header('Content-type: application/json; charset=utf-8');
print $_GET['callback'] . '(' . json_encode($a) . ');';
?>

В файрфоксе во вкладке сети в файрбаге запрос крутится и не завершается, ничего не происxодит. Если поменять урл на
http://search.twitter.com/search.json?lang=ru&rpp=10&callback=?&q=
то всё отрабатывает. Дело в пхп, раскоментирование header не помогает. Ну чё ему надо, а?

Dropbox - средство синхронизации и бэкапа файлов.
#1 
Murr патриот05.08.11 13:50
Murr
NEW 05.08.11 13:50 
in Antwort voxel3d 05.08.11 03:58
Покажи что по факту отправляется на сервер и какой ответ в обоих случаях.
Похоже просто не корректно распознается запрос - какой-нибудь CONTENT-LENGHT не правильный
#2 
voxel3d патриот05.08.11 16:06
voxel3d
05.08.11 16:06 
in Antwort Murr 05.08.11 13:50
16:01:44.904[0мс][всего 0мс] Статус: pending[]
GET http://myhost/json.php?callback=jQuery151005805126899681634_1312552904747&_=1312552904901
Флаги загрузки[LOAD_NORMAL] Размер содержимого[unknown] Тип Mime[unknown]
Заголовки запроса:
Host[myhost]
User-Agent[Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0]
Accept[*/*]
Accept-Language[ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3]
Accept-Encoding[gzip, deflate]
Accept-Charset[windows-1251,utf-8;q=0.7,*;q=0.7]
Connection[keep-alive]
Referer[...]
Cookie[...]
16:01:47.357[410мс][всего 410мс] Статус: 200[OK]
GET http://search.twitter.com/search.json?lang=ru&rpp=10
&callback=jQuery151005805126899681634_1312552904746&q=&_=1312552904895
Флаги загрузки[LOAD_REPLACE ] Размер содержимого[-1] Тип Mime[application/json]
Заголовки запроса:
Host[search.twitter.com]
User-Agent[Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0]
Accept[*/*]
Accept-Language[ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3]
Accept-Encoding[gzip, deflate]
Accept-Charset[windows-1251,utf-8;q=0.7,*;q=0.7]
Connection[keep-alive]
Referer[...]
Cookie[...]
DNT[1]
Заголовки ответа:
Date[Fri, 05 Aug 2011 14:01:54 GMT]
Server[hi]
Vary[Accept-Encoding]
Status[200 OK]
Content-Type[application/json; charset=utf-8]
Cache-Control[max-age=15, must-revalidate, max-age=300]
X-Varnish[350207135]
Age[0]
Via[1.1 varnish]
X-Cache-Svr[smf1-adr-07-sr1.prod.twitter.com]
X-Cache[MISS]
Expires[Fri, 05 Aug 2011 14:06:54 GMT]
Content-Encoding[gzip]
Connection[close]
Transfer-Encoding[chunked]


Dropbox - средство синхронизации и бэкапа файлов.
#3 
voxel3d патриот05.08.11 16:07
voxel3d
NEW 05.08.11 16:07 
in Antwort voxel3d 05.08.11 16:06, Zuletzt geändert 05.08.11 16:09 (voxel3d)
cookie, referer подчистил, их содержимое несущественно. Тот же самый запрос в первом случае, который из состояния pending не выходит, в браузере из адресной строки исполняется на ура.
Пришёл к выводу, что запретили в браузере такие кроссдоменные запросы.
Dropbox - средство синхронизации и бэкапа файлов.
#4 
Murr патриот05.08.11 18:22
Murr
NEW 05.08.11 18:22 
in Antwort voxel3d 05.08.11 16:07
Пришёл к выводу, что запретили в браузере такие кроссдоменные запросы
------
Эээ... не думаю... для браузера запрос выглядит как загрузка контента - он может браться откуда угодно... или будет блокироваться много чего, в том числе и загрузка JQwery...
Что могли заткнуть - подборку с лосалхоста... или блокировку ПопАпов... По крайней мере я бы это понял.
У тебя второй хост есть? Потести в сети.
Криминала в запросах - не вижу. Непонятная добавка в одном, но не думаю, что критично - запрос у тебя отрабатывает.
Там есть функция - onreadystatechanged - повесь на нее что-нибудь и посмотри что там со статусом - возможно что прояснится.
#5 
voxel3d патриот05.08.11 18:57
voxel3d
NEW 05.08.11 18:57 
in Antwort Murr 05.08.11 18:22
На удалённом хосте пхп скрипт - заработало. Странно всё это. Думаете, браузер блокирует згрузку с локалхоста? Похоже на то, в логах вебсервера я обращений не вижу.
Dropbox - средство синхронизации и бэкапа файлов.
#6 
Murr патриот06.08.11 01:18
Murr
NEW 06.08.11 01:18 
in Antwort voxel3d 05.08.11 18:57
Или блок, или не может разрезолвить имя.
#7 
compman постоялец06.08.11 09:29
compman
NEW 06.08.11 09:29 
in Antwort voxel3d 05.08.11 18:57
Firewall может быть. Касперский такие падлянки иногда делает без всяких разговоров.
#8 
Poiser местный житель11.08.11 10:40
Poiser
NEW 11.08.11 10:40 
in Antwort voxel3d 05.08.11 18:57, Zuletzt geändert 11.08.11 10:41 (Poiser)
Помнится у меня такая же проблема была, если не ошибаюсь то проблема в том, что кросс-доменный JavaScript запрещен политиками безопасности браузеров. AJAX запрос может быть отправлен только тому серверу, с которого был загружен сам js скрипт.
Создание сайтов, онлайн-магазинов в Германии
#9 
Victor! знакомое лицо12.08.11 23:10
Victor!
NEW 12.08.11 23:10 
in Antwort Poiser 11.08.11 10:40
не, как уже написали выше - js пофиг куда слать запрос и пофик что получать
#10 
Poiser местный житель13.08.11 10:40
Poiser
NEW 13.08.11 10:40 
in Antwort Victor! 12.08.11 23:10
JS да, а браузеру нет. Погуглите на тему - защита браузеров от XSS.
Создание сайтов, онлайн-магазинов в Германии
#11 
  scorpi_ гость13.08.11 13:02
NEW 13.08.11 13:02 
in Antwort Poiser 13.08.11 10:40
Глаза разуй, это JSONP запрос.
#12 
Poiser местный житель13.08.11 15:32
Poiser
NEW 13.08.11 15:32 
in Antwort scorpi_ 13.08.11 13:02
Жаль что в детском саду вас не научили выражать свои мысли так чтобы они были понятны окружающим.
Создание сайтов, онлайн-магазинов в Германии
#13 
  scorpi_ гость13.08.11 21:48
NEW 13.08.11 21:48 
in Antwort Poiser 13.08.11 15:32
А зачем вставлять свои две копейки, если не владеешь вопросом? гугл в помошь: http://de.wikipedia.org/wiki/JavaScript_Object_Notation#JSONP_.28JSON_mit_Paddin...
#14