Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2011, 20:14   #1
Geniy00
 
Регистрация: 27.06.2009
Сообщений: 6
По умолчанию [Ajax]XMLHttpRequest проблема с получением ответа

Добрый день.
У меня проблема, помогите разобраться
Цель: Получение результата запроса к серверу
Нужно c google.com/dictionary перевести слово с англ. на русский
Скрипт должен работать с Chrome

Перехватывал запросы через fiddler
Запрос get к адресу http://suggestqueries.google.com/com...r&q=world&cp=5
для нового запроса нужно изменить q=world&cp=5
, где world - слово для перевода
5 - количество букв

результат в TextView:
Код:
window.google.ac.hr(["world",[["world","всемирный, мировой, мир, свет, общество, вселенная,  ... и т.д.
Пробовал делать в Firefox через Firebug: ответ вообще не получается. Возможно из за особенностей FireFox к XMLHttpRequest

мой сайт лежит на локальном денвере localhost/site

Вопросы:
1) Почему xmlHttp.status равен 0 а не 200? (я ведь обращаюсь к сайту в инете, а не к локальному)?
2)Почему в <div id="res"></div> не записывается ответ запроса?
3)Могут ли возникнуть проблемы с тем что мой запрос идет к другому домену а не localhost?



Код:
<html>
<head>

<title>Test</title>
</head>
<script type="text/javascript" language="javascript">
	
	
	function Click()
	{
		var xmlHttp = new XMLHttpRequest();		
		var url = "http://suggestqueries.google.com/complete/search?client=dict&hjson=t&ds=d&hl=ru&jsonp=window.google.ac.hr&q=world&cp=5";		
		xmlHttp.open("GET", url, true);		
		xmlHttp.onreadystatechange = function() {updatePage(xmlHttp);};		
		xmlHttp.send(null);
	}
	
	function updatePage(xmlHttp)
	{
		if (xmlHttp.readyState == 4)
		{
			res2.innerHTML = "status=" +xmlHttp.status + "|statusText=" + xmlHttp.statusText + "|readyState=" +xmlHttp.readyState ;
			if(xmlHttp.status == 200 || xmlHttp.status == 0)
			{
				
				res.innerHTML = xmlHttp.responseText;
				
			}
			else alert('xmlHttp.status != 200 and != 0');
		}				
	}
	
</script>
  
  
  
<body>
    <div>Result: </div>
    <div id="res2"></div>
    <div id="res"></div>
    
    
    <br /><br />
    <form>
     
        <input type="button" value="Click" onClick="Click()" />
    </form>
  
</body>
</html>
Geniy00 вне форума Ответить с цитированием
Старый 27.05.2011, 23:53   #2
8oOoRPM
Форумчанин
 
Регистрация: 12.11.2010
Сообщений: 146
По умолчанию

Вообще изначально аякс предназначался для локальной деятельности, запросы на внешние(не родные) сервера запрещались политикой безопасности... На данный момент даже хром иногда ругается ;D....
В URI явно просматривается формат jsonp, это междоменный формат который передаёт json данные... их можно десереализовать функцией eval(), которую я почему-то не вижу...
8oOoRPM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формирование ответа на AJAX-запрос Виталий Желтяков PHP 7 05.02.2011 19:49
Ajax. Видимость XMLHttpRequest. Викдон JavaScript, Ajax 0 03.08.2010 18:09
Проблема с получением страницы lukinjj PHP 2 18.07.2010 21:03
Проблема с получением имени zumm Общие вопросы Delphi 3 14.05.2010 13:06
Кеширование ответа AJAX Grind PHP 11 25.03.2009 16:44