Послал POST запрос, а он послал меня в ответ.

Печать RSS
434

Автор
Дедушка
0
В общем вот код POST запроса -
function add2cart(page, elem) {
        if($(elem).hasClass('in-cart')) {
            window.location.href = '/cart.html';
        } else {
           $.post('/ajax-cart.html', {act:'add', product:page}, function(data){
               $('#cart-line').html(data);
               $(elem).addClass('in-cart');
            }, 'html');
        }
    }

при нажатии вместо посыла появляется в консоли -
jquery-1.4.4.min.js:141
POST http://***.ru/ajax-cart.html 500 (Internal Server Error)

Пробовал через $.ajax, бредятина какая то... Реально.... По другому не скажешь... То в хроме работает, в опере нет, то наоборот, то ни там ни там.... что за ахтунг? как жить дальше? по адресу http://***.ru/ajax-cart.html ручками перехожу без проблем
Изменил: Женек (27.04.2012 / 22:29)
А

Оранжевые штаны
0
Скорее всего просто сервак вылетает в этот момент, коды 5** - ошибка на сервере.
Автор
Дедушка
0
2. Муз-ТВ, круглосуточно? нет, это не из за этого
А

Оранжевые штаны
0
тогда сайт в студию
Автор
Дедушка
0
4. Муз-ТВ, нет смысла, там черт ногу сломит в скриптах, кусок кода который вызывает ошибку я привел.

Когда убираю параметры, то по идее проходит запрос, но мне то нужно с параметрами

Голубые штаны
0
Во-первых, убедись, что все переменные принимаются именно постом. Возможно ты $act принимаешь через джет smile

Во-вторых, метод $.ajax вполне отличный. Весь мир его юзает, а у тебя не выходит. Угадай, кто виноват?

В-третьих, убедись, что ты правильно передаешь в функцию значения page и elem. Строки должны быть обязательно в одинарных кавычках, числа можно и просто как число. Иначе прийдет undefined либо null.

Попробуй так:
function add2cart(page, elem) { 
	if ($(elem).hasClass('in-cart')) {
		window.location.href = '/cart.html'; 
	} else {
		$.ajax({
			type: 'POST',
			url: '/ajax-cart.htm',
			cache: false,
			data: 'act=add&product='+page,
			dataType: 'html',
			success: function(content)
			{
				$('#cart-line').html(content); 
				$(elem).addClass('in-cart');  
			}
		});
	}
}
Автор
Дедушка
0
6. dima.london,
Вставил вот так

  function add2cart(page, elem) {  
    if ($(elem).hasClass('in-cart')) { 
        window.location.href = '/cart.html';  
    } else { 
        alert(page);
        $.ajax({ 
            type: 'POST', 
            url: '/ajax-cart.html', 
            cache: false, 
            data: 'act=add&product='+page, 
            dataType: 'html', 
            success: function(content) 
            { 
                $('#cart-line').html(content);  
                $(elem).addClass('in-cart');   
            },
            error: function (data)
            {
                alert('Error');
            }
        }); 
    } 
}

Отвечает мне Error, алерт page выводит 665

Какая разница как они принимаются, если вылетает 500 ошибка? Если бы я их не принял, просто не прошел бы нужный результат, а здесь именно error в запросе.

Я не спорю что метод ajax отличный, у меня он тоже юзается отлично, а вот в данном скрипте что $.post, что $.ajax дают косяк. Гугл дельного на этот счет ничего не дает.

Добавлено через 01:09 сек.
В консоли все тот же 500
А

Оранжевые штаны
0
7, а обычная html форма отправленная с теми же данными что возвращает?

Голубые штаны
0
Убедись что адрес правильный. Я так понимаю, что адрес /ajax-cart.html сформирован черех мод-реврайт, так может в htaccess создано неверное правило для него?
Автор
Дедушка
0
8. Муз-ТВ, не проверял кстати... Но я думаю что с формой все прокатит нормально. А так чертовщина какая то творится. На других страница выдает еще лучше... Кроме 500 выдает

XMLHttpRequest cannot load http://www.***.ru/ajax-cart.html. Origin http://***.ru is not allowed by Access-Control-Allow-Origin.

Добавлено через 02:07 сек.
9. dima.london, в теории все отлично, все обрабатывается нормально, ручками пускает, хз даже... завтра конечно посмотрю .htaccess.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск