繁体   English   中英

jQuery跨域发布重定向

[英]jQuery cross domain post redirect

我正在尝试使用jQuery来发布表单以进行收费。 我的“网络”标签显示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正在将我重定向到服务器上不存在的页面。 不幸的是,一旦我解决了这个问题,我仍然有一个问题。 据我所知,我开机自检,然后用我指定的URI将302发送回浏览器。 此URI位于我的服务器(目前为localhost)上。 重定向用户后,我的服务器将解析响应并返回JSON。 我通过复制并粘贴到另一个选项卡测试了响应标题的位置,并且工作正常。

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

前几天遇到了一个非常类似的问题。 但是即时通讯使用ASP.NET MVC4。

如果您使用crossDomain:true还不够,还需要添加, dataType: 'json or html depending on the return value', xhrFields: { withCredentials: true },您还需要添加以下标头“ Access-Control-Allow -Origin:“ http://yourdomain.net ”,Access-Control-Allow-Credentials:true,在您的情况下也可能是“ Access-Control-Allow-Methods:GET,POST”,以及您的RESPONSE。

Chargify Direct不支持ajax / CORS。

正如他们所描述的,您应该使用“透明重定向”,这基本上是将用户重定向到Chargify的标准形式,并且它们会将用户再次重定向回您在有效负载中指定的URL。 这意味着用户将短暂离开您的站点并返回到该站点。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM