【问题标题】:dojo issues a GET request whenever there is a 301 permanent redirect response on any HTTP method每当在任何 HTTP 方法上有 301 永久重定向响应时,dojo 都会发出 GET 请求
【发布时间】:2011-09-01 02:26:58
【问题描述】:

我的网络应用程序如下:

  • /abc/xyz:响应 301 永久重定向位置:/abc/xyz/
  • /abc/xyz/ : 基于请求的 HTTP 方法的适当响应

现在当我发出如下请求时:

dojo.xhr('PUT', {url : "/abc/xyz"})

以下操作顺序自动发生:

  • 已发送 PUT 请求
  • 收到 301 永久重定向
  • GET 请求被发送到新的 URL /abc/xyz/

我不明白为什么会这样。我不希望 dojo.xhr 这么聪明。我希望它在 301 永久重定向响应上停止,让我处理如何处理永久重定向。在这种情况下,我更愿意更新 url 并发送一个新的 PUT 请求。 OPTIONS 等所有其他 HTTP 方法的情况都是一样的。我在上面使用 PUT 作为示例。

是否有任何选项可以将 dojo.xhr 配置为像这样?

【问题讨论】:

标签: http redirect dojo xmlhttprequest


【解决方案1】:

如果您确实不需要关注 301,您可以在服务器端创建一个网关,该网关返回收到 301 的通知,而不是关注它。

使用 PHP 和 curl 来做到这一点。见http://php.net/manual/en/ref.curl.php cmets中有一个get_url函数

【讨论】:

    【解决方案2】:

    这是除 IE 之外的所有浏览器中的一个已知问题(Firefox 的管道正在修复中)。

    同时,如果您确实需要浏览器正确跟随 PUT 重定向,则需要使用状态码 307。

    另请参阅http://trac.tools.ietf.org/wg/httpbis/trac/ticket/160http://trac.tools.ietf.org/wg/httpbis/trac/ticket/312

    【讨论】:

      猜你喜欢
      • 2016-01-14
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 2021-09-19
      • 2014-09-24
      相关资源
      最近更新 更多