IE AJAX кросс-браузерная проблема - PullRequest
1 голос
/ 11 октября 2011

У меня есть следующая функция AJAX:

function ajaxDesignerBrandInfo()
{
    var D = wrapFormValues('#designer-brand-form');
    var recursiveEncoded = $.param(D);  
    /*
    $.post("/api/designer_brand/", { data : recursiveEncoded }, function(data) 
    {
        var results = $.parseJSON(data);
        window.location = "/register/designer-product/"; 
    });*/

    $.ajax( { type: "POST", 
              url: "/api/designer_brand/", 
              data : { data : recursiveEncoded },
              success: function(data) { 
                console.log(data);
                setTimeout(function() {
                window.location = "/register/designer-product/";
            },0);
              },
              error: function (xhr, ajaxOptions, thrownError ){
                                alert(xhr.status);
                                alert(thrownError); }
        });

    return false;   

}

И соответствующая форма

<form id="designer-brand-form" name="form" method="post" action="" onSubmit="ajaxDesignerBrandInfo(); return false;"> 
....
</form>

Представление отлично работает на Chrome, Safari и FireFox, переводя меня на

/ register / designer-product /

Правильно, но в IE9 представленные данные кажутся

  1. Никогда не попадут на сервер

  2. очистить форму и перенаправить обратно на текущую страницу, на которой я нахожусь (на которой эта форма существует).

Я могу подтвердить с помощью Firefox, что нет ошибок JavaScript, вызывающих этотерпеть неудачу.И иногда это действительно работает, но я не могу, кажется, всегда воспроизводить эту ошибку одинаково

Кто-то Пожалуйста, объясните, что происходит WTF?

Спасибо

1 Ответ

2 голосов
/ 11 октября 2011

Я считаю, что ваша проблема в том, что IE молча выдает ошибку Javascript. Тот факт, что Firefox не выдает ошибку JS, не означает, что IE этого не делает. Проверьте наличие ошибок JS в IE (см. эту ссылку или эту ). Найдите ошибку, и вы найдете решение.

Кроме того, попробуйте Fiddler , который является автономным инструментом Windows, который действует как прокси-сервер и точно скажет вам, как выглядит ваш трафик AJAX.

Ваша конкретная проблема может быть console.log вызов. Это вещь Firebug (которую поддерживает Chrome). Я думаю, что IE не делает, если вы не предпримете шаги, чтобы добавить его. Смотрите: Что случилось с console.log в IE8?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...