AJAX https POST-запросы с использованием jquery не работают в Firefox

StackOverflow https://stackoverflow.com/questions/597073

Вопрос

У меня есть простой список записей в таблице HTML со ссылкой на удаление для каждой строки.Ссылка на удаление отправляет запрос на публикацию AJAX на фиксированный URL-адрес, который выглядит следующим образом:"/delete/record/5"

Запрос AJAX создается с использованием jquery. .ajax() вызов с сообщением POST при работе на сервере, использующем https.Этот вызов не работает в Firefox 3 на архитектурах OSX/Windows.Он работает во всех других браузерах, которые я тестировал (OSX/Windows:Chrome, Safari, IE7.)

Запросы поступают с сайта https и переходят на тот же сайт https.Но я думаю, что где-то во время процесса исходный запрос начинается с http, и на нашем сервере происходит попытка перенаправления, чтобы отправить его с http->https, и Firefox отклоняет это перенаправление как некую подделку.

Был ли у кого-нибудь опыт выполнения .ajax() JQuery вызывает сайт https с помощью Firefox?Я замечаю что-то странное: если в запросе есть "?var=xxx"аргументы в URL-адресе, запрос, похоже, работает чаще, чем если бы он не имел этих переменных.

Это было полезно?

Решение

Похоже, вы получаете ошибку HTTP 411..Эта ошибка может произойти, если вы отправляете POST запрос без каких-либо data.

Чтобы это исправить, добавьте пустой объект ({}) к data недвижимость по вашим запросам:

$.ajax({ 
    url: url, 
    type: 'POST', 
    data: {}, // <- set empty data 
    success: function(data, textStatus) { 
        // do something 
    } 
}); 

Другие советы

Это кажется маловероятным...не то чтобы я в тебе сомневался.Но я бы посоветовал загрузить Wireshark и посмотреть ваш HTTP-трафик, чтобы увидеть, сможете ли вы изолировать проблему.Вы сможете сравнить запрос, отправленный другими браузерами, с запросом, отправленным FF3, и посмотреть, какой ответ возвращается.Если проблема действительно в том, что jQuery не работает правильно в FF3, вы можете изменить часть кода, чтобы он работал правильно.

Вероятно, вы можете установить расширение Firefox Live Headers, которое предоставит вам доступ ко всей информации в ваших запросах/ответах.Таким образом, вы сможете уловить любые различия.

Установлены ли в вашем Firefox какие-либо плагины или скрипты GreaseMonkey?

У меня никогда не было проблем с запросами jQuery AJAX по HTTPS.Я бы посоветовал взглянуть на то, что поджигатель появится, если вы еще этого не сделали.

я получил $.post для работы в Firefox, отправив пустой объект в качестве data параметр.Обратите внимание на пустые скобки для параметра 2:

$.post(url, {}, function(response){ alert('done'); }, "json");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top