jQuery跨域后重定向



我正在尝试使用jQuery将表单POST到chargify。我的"Net"选项卡显示了一个302重定向(红色表示错误),但jQuery抛出了一个404错误。是否可以从浏览器预生成一个x域、发布、重定向请求,或者我需要使用代理?

$(function() {
    var endpoint = "https://api.chargify.com/api/v2/signups"
    $('#new_sub_form').on('submit', function(e){
        e.preventDefault()
        var jqxhr = $.ajax({
            type: "POST",
            url: endpoint,
            crossDomain:true,
            data: $('#new_sub_form').serialize(),
            success: function(data, textStatus, request){
                console.log(request.getResponseHeader('Location'));
            },
            error: function (request, textStatus, errorThrown) {
                console.log(request.getResponseHeader('Location')); // Returns null
            }
        })
    })//on('submit')
})//ready()

更新(更多信息):所以我意识到302正在将我重定向到服务器上不存在的页面。不幸的是,一旦我解决了这个问题,我仍然有一个问题。据我所知,我POST到chargify,然后他们用我指定的URI将302发送回浏览器。这个URI位于我的服务器(目前为localhost)上。一旦用户被重定向,我的服务器就会解析响应并返回JSON。我通过复制粘贴到另一个选项卡来测试响应标头的位置,效果很好。

Chargify只提供https,而我的本地主机是http。这会导致错误吗?!HTTP响应

前几天遇到了一个非常类似的问题。不过我使用的是ASP.NET MVC4。

如果您使用CCD_ 1还需要添加, dataType: 'json or html depending on the return value', xhrFields: { withCredentials: true }, 您还需要添加以下标题"Access Control Allow Origin:"http://yourdomain.net",访问控制允许凭据:true",在您的情况下可能还有"访问控制允许方法:GET,POST"以及您的RESPONSE。

Chargify Direct不支持ajax/CORS。

正如他们所描述的,你应该使用"transarent重定向",这基本上是将用户重定向到Chargify后的标准形式,他们会再次将用户重定向回你在负载中指定的URL。这意味着用户将短暂地离开你的网站并返回到它

<form method="post" action="https://api.chargify.com/api/v2/signups">
</form>

文档:https://docs.chargify.com/chargify-direct-introduction

相关内容

  • 没有找到相关文章

最新更新