我有以下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(); });
答案 0 :(得分:3)
解决了这个问题,那里有两个问题:
AJAX请求未通过HTTPS
我必须将以下行添加到我的控制器顶部
ssl_required:check_payment
一切顺利,谢谢你的帮助!
答案 1 :(得分:1)
在我的情况下,当我尝试执行跨域ajax请求时,我遇到了一些错误。如果https有原因(即使我不认为),请尝试阅读有关jsonp dataType的文档:http://api.jquery.com/jQuery.ajax