【问题标题】:handling a redirect from a cross-origin post in AJAX在 AJAX 中处理来自跨域帖子的重定向
【发布时间】:2011-03-16 18:08:40
【问题描述】:

我们正在尝试创建一个将托管在服务器 x.foo.com 上的 RESTful API。客户端 html 应用程序(内置 jquery)将托管在 y.foo.com 上。

我正在通过设置 Access-Control-Allow-Origin 标头来处理跨域问题,如此处所述http://www.w3.org/TR/cors/

到目前为止一切顺利,我现在可以成功地从主机 y 向主机 x 进行 AJAX 调用。

但是,我遇到了 POST 请求的问题。对发布请求的典型响应是重定向。但是,XMLHttpRequest 对象不会遵循跨域重定向,从而导致调用失败。

// Hosted on y.foo.com
$.ajax({
    type: "POST",
    url : http://x.foo.com/myapp/",
    success: function(data) {
      alert("success!");
    }
});

// Return status:  302  
// (Which errors out in firebug)

有人知道我从这篇文章中为托管在 y 上的客户端处理重定向(到服务器 x 上的资源)的任何技术吗?

【问题讨论】:

    标签: ajax http post redirect cross-domain


    【解决方案1】:

    客户端如何为 AJAX 请求发送一个特殊的标头,根据是否是 AJAX 请求,您可以更改响应而不是进行重定向。

    【讨论】:

    • 是的 - 这可能是一个可能的解决方案。我也许可以只使用 Content-Type 标头来指定所需的格式。如果是 JSON,我可以为 POST 发送一个常规的 200 响应。但是,我不确定这是否被认为是最佳实践,因为大多数 REST 文献似乎都建议针对 POST 返回重定向。
    猜你喜欢
    • 2015-10-20
    • 2013-09-08
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2012-06-02
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多