Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 27.02.2012, 18:28
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

ну вот на форуме первая же статья с примером запроса
http://javascript.ru/unsorted/async/deferred
Ответить с цитированием
  #12 (permalink)  
Старый 28.02.2012, 11:20
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

А как кодировку то проставить? Я так понимаю, что в тоже в заголовках?
Ответить с цитированием
  #13 (permalink)  
Старый 28.02.2012, 15:19
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

Вот ещё...
При асинхронном запросе firebug в ответе новой страницы (я не знаю как правильно формулировать это) выдаёт статус 304 Not Modified... и стили с ответом 200(ок)...не знаю важно ли это..
Ответить с цитированием
  #14 (permalink)  
Старый 28.02.2012, 15:43
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

тяжело гуглом воспользоваться и посмотреть что это за статусы?
Ответить с цитированием
  #15 (permalink)  
Старый 28.02.2012, 16:43
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

Я наверное где-то не совсем чётко выразился. Я не программист, я вообще ни разу не разбираюсь в структрах работы приём передачи данных, структуре интернета, в общих базовых принципах. Да, я понимаю, что это не дело, что если уж взялся за Аякс, нужно об определённых вещяах осведомиться. Но, к сожелению, нет времени на это, только на какие-то оперативные задачи, ктороой, я думал эта и являлась....
Ответить с цитированием
  #16 (permalink)  
Старый 28.02.2012, 17:30
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

А со статусом разобрался - это кеширование было..
Ответить с цитированием
  #17 (permalink)  
Старый 28.02.2012, 19:41
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

К вопросу о кодировки. Ставлю
setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8;", "Cache-Control: no-store, no-cache, must-revalidate");

Но это ж на запрос, а ответ приходит с windows-1251....может это не важно...=/
Ответить с цитированием
  #18 (permalink)  
Старый 28.02.2012, 19:49
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

Вопрос дёргания решён. Точнее сказать перешёл в другой.
С синхронным запросом всё работает правильно.
Не работает асинхронный метод...
Ответить с цитированием
  #19 (permalink)  
Старый 28.02.2012, 20:36
Аватар для allergencore
Интересующийся
Отправить личное сообщение для allergencore Посмотреть профиль Найти все сообщения от allergencore
 
Регистрация: 14.11.2010
Сообщений: 11

я думаю ваша проблема в том, что с сервера возвращается полная страница. есть 2 решения.
1) посылать запрос типа "http://blah-blah/file.php?ajax=1"
file.php:
<?php //line 0
if ($_GET['ajax'] == 1) header("Content-Type: text/xml; charset=ваша_кодировка");
...

еще небольшая кривость в onreadystatechange: на него повешена функция, которая возвращает булеву переменную. так нельзя, вы возвращаете же не значение анонимной функции а самой функции swapPhoto, короче - вот какой должна быть ваша функция для первого варианта:
function swapPhoto(href) {
	var req = new XMLHttpRequest();
	var rtrn = false;
	req.open("GET",
           "http://achacha/chacha/" +
             href.split("/").pop(),
           true);
	req.onreadystatechange = function() {
		if (req.readyState == 4 && req.status == 200) {
			document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
			setupHistoryClicks();
			rtrn = true;
		}
	}
	req.send(null);
	return rtrn;
}

2) просто не париться и через пхп-шник передавать только содержимое дива.
function swapPhoto(href) {
	var req = new XMLHttpRequest();
	var rtrn = false;
	req.open("GET",
           "http://achacha/chacha/" +
             href.split("/").pop(),
           true);
	req.onreadystatechange = function() {
		if (req.readyState == 4 && req.status == 200) {
			document.getElementById("content").innerHTML = req.responseText;
			setupHistoryClicks();
			rtrn = true;
		}
	}
	req.send(null);
	return rtrn;
}
Ответить с цитированием
  #20 (permalink)  
Старый 28.02.2012, 20:38
Аватар для allergencore
Интересующийся
Отправить личное сообщение для allergencore Посмотреть профиль Найти все сообщения от allergencore
 
Регистрация: 14.11.2010
Сообщений: 11

не забивайте человеку голову. здесь заголовки не причем

Последний раз редактировалось allergencore, 28.02.2012 в 20:57.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37