javascript - jQuery 跨域发布重定向

标签 javascript jquery http cross-domain chargify

我正在尝试使用 jQuery 来 POST 表单以进行充电。我的“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。我通过复制并粘贴到另一个选项卡中测试了响应 header 位置,并且工作正常。

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

最佳答案

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

如果你使用crossDomain:true还不够,你还需要添加, dataType: 'json 或 html 取决于返回值', xhr字段:{ withCredentials: true }, 您还需要添加这些 header “Access-Control-Allow-Origin:”http://yourdomain.net ”, Access-Control-Allow-Credentials:true”,也许“Access-Control-Allow-Methods:GET,POST”在您的情况下以及您的响应。

关于javascript - jQuery 跨域发布重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18618872/

相关文章:

jquery - 变换 :scale and :nth-child() selector don't work

javascript - 如何隐藏容器中的 DIV 类以及同一容器中的另一个 div?使用 jQuery

PHP Slim 和 PUT 请求

javascript - 匹配 "maybe valid month"的正则表达式

javascript - vuex中的数据如何设置初始值?

javascript - 单击主体而不是两个 div

javascript - 无法从 JavaScript 获取标签

javascript - 多个ul逆序

api - Promise 拒绝 : No provider for UserDetails!(UserDetails 是 Model 类)

java - 为什么 Jsoup 无法连接某些 URL?