Rails AJAX无法通过HTTPS工作,生成302错误,你能看到什么问题吗?

时间:2011-01-23 21:13:55

标签: jquery ruby-on-rails ajax

我有以下javascript / AJAX功能,它嵌入在我们的付款页面上,用于检查用户是否每5秒付款以及他们是否已将其重定向到确认页面。

此代码在我们的开发框中运行正常,它没有HTTPS,但在我们的生产服务器上,firebug告诉我,调用javascript时会出现302错误。

当我复制AJAX生成/使用的URL并将其粘贴到我的浏览器中时,会返回预期的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 个答案:

答案 0 :(得分:3)

解决了这个问题,那里有两个问题:

  1. AJAX请求未通过HTTPS

  2. 发送到服务器
  3. 我必须将以下行添加到我的控制器顶部

  4.   

    ssl_required:check_payment

    一切顺利,谢谢你的帮助!

答案 1 :(得分:1)

在我的情况下,当我尝试执行跨域ajax请求时,我遇到了一些错误。如果https有原因(即使我不认为),请尝试阅读有关jsonp dataType的文档:http://api.jquery.com/jQuery.ajax