Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   IE8 + jQuery + $.ajax (https://javascript.ru/forum/css-html-internet-explorer/11100-ie8-jquery-%24-ajax.html)

Sh0dan 06.08.2010 17:10

IE8 + jQuery + $.ajax
 
Доброго времени суток, господа. 3й день воюю со связкой, указанной в теме. Суть такова: осел не инициирует аякс запрос и "радует" ошибкой:
"Объект не поддерживает это свойство или метод". Фишка в том что после ручного обновления страницы js отрабатывает отлично. Пытался подключать различные версии jQ - не помогло. Вот пример проблемного кода:

<h1>IE Ajax Test</h1>
<a href='javascript:void(0);' id='ajax'>do ajax</a><br/>
<div id='res'></div>
<script type='text/javascript'>
	$(document).ready(function(){
		if($.browser.msie) alert("IE ver. " + $.browser.version);
		$('#ajax').click(function(){
			doAjax();
		});
	});
	function doAjax() {
		var post_data = "ajax=true";
		$.ajax({
            type: 'POST',
            data: post_data,
            url: '<?php echo $this->createUrl('test/ajax');?>',
            success: function(responce) {
				$("#res").append(responce + "<br/>");
            }
        });
	}
</script>


Искренне прошу помощи. Все предположения уже исчерпаны. Заранее благодарен.

x-yuri 07.08.2010 04:21

Цитата:

Сообщение от Sh0dan
Фишка в том что после ручного обновления страницы js отрабатывает отлично

может кэш почистить? Это локально или на удаленном сервере так? А если файл переименовать (изменить url)?

Sh0dan 08.08.2010 19:36

Попробовал код на локальном веб сервере - работает как швейцарские часы. Файл переименовывал, добавлял к ссылке рандомный аргумент. Безрезультатно, увы.

x-yuri 08.08.2010 20:05

Цитата:

Сообщение от Sh0dan
и "радует" ошибкой:
"Объект не поддерживает это свойство или метод"

в каком месте возникает эта ошибка?

раз переименовывали файл, значит скорее всего дело не в кеше

и раз локально работает, значит запрос скорее всего отправляется (и локально, и на сервере). Какие заголовки отдает браузер/сервер?

попробуйте поэкспериментировать с политиками конфиденциальности. Я ж надеюсь ajax-запрос отправляется на тот же сервер?

Sh0dan 08.08.2010 20:27

Ошибка возникает в файле jquery, 123я строка сжатой версии либы. Вот на этом коде спотыкается:
return new A.XMLHttpRequest

Запрос отправляется и обрабатывается в рамках одного домена/сервера. Все в одной среде.
Прослушал трафик во время клика по аякс элементу - запрос не был отослан. А вот заголовки сервера/браузера, полученные в другом браузере (домен специально скрыл, извините :) ) :

Request URL:http://mydomain.com/test/ajax/0.10713744815438986
Request Method:POST
Status Code:200 OK
Request Headers
Accept:*/*
Content-Type:application/x-www-form-urlencoded
Origin:http://mydomain.com
Referer:http://mydomain.com/test/ie
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4
X-Requested-With:XMLHttpRequest
Form Data
ajax:true
Response Headers
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:keep-alive
Content-Type:text/html
Date:Sun, 08 Aug 2010 16:24:55 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Pragma:no-cache
Server:nginx/0.6.39
Transfer-Encoding:chunked
X-Powered-By:PHP/5.2.6-1+lenny8

Sh0dan 08.08.2010 20:47

Троекратное "УРА"! ) Решилась проблема.
Проект, на котором возникали проблемы, использует Yii фреймворк и jquery скрипт подключался средствами данного фреймворка. Решил попробовать стандартно через тэг <script> и, о чудо, все заработало.
Спасибо большое, x-yuri, за то что уделили внимание данной проблеме. Думаю, вопрос закрыт.


Часовой пояс GMT +3, время: 00:33.