Rails AJAX не работает через HTTPS, генерируя ошибку 302, вы видите, что не так? - PullRequest
0 голосов
/ 24 января 2011

У меня есть следующая функция javascript / AJAX, которая встроена в нашу страницу оплаты, она предназначена для проверки, совершал ли пользователь платеж каждые 5 секунд и перенаправлял ли он его на страницу подтверждения.

Этот код прекрасно работает на нашей машине разработки, в которой нет HTTPS, но на нашем рабочем сервере firebug сообщает мне, что при вызове javascript возникает ошибка 302.

Когда я копирую URL-адрес, созданный / используемый AJAX, и вставляю его в браузер, возвращается ожидаемый json.

Кто-нибудь может увидеть, что здесь не так?

        function check_payment() {
         jQuery.ajax({
           url: "/ads/check_payment/<%= @ad.id %>", 
           dataType: 'json',
           tyle: "POST",
           error: function(xhr_data) {
             // terminate
           },
         success: function(xhr_data) {
           if (xhr_data.status == 'pending') {
             setTimeout(function() { check_for_payment(); }, 5000);
           } else {
             window.location.replace("/confirmation")
           }
         },
         contentType: 'application/json'
         });
       }
       jQuery(document).ready(function() {
         check_payment();
      });

Ответы [ 2 ]

3 голосов
/ 24 января 2011

Исправлено, там были две проблемы:

  1. AJAX-запрос не отправлялся на сервер через HTTPS

  2. Мне пришлосьдобавьте следующую строку в начало моего контроллера

ssl_required: check_payment

Тогда все работало нормально, спасибо за вашу помощь!

1 голос
/ 24 января 2011

В моем случае я получил около 302 ошибок при попытке сделать междоменный запрос ajax.Если https является причиной (даже если я не думаю), попробуйте прочитать документ о jsonp dataType: http://api.jquery.com/jQuery.ajax

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