标签: http-status-code-302

设置<sessionState cookieless ="AutoDetect"/>时,POST请求失败

考虑以下情况:

  • Web服务器正在运行.NET应用程序<sessionState cookieless="AutoDetect" />.
  • 客户端使用简单的HttpWebRequest(无cookie)将数据发布到它.

这个看似简单的案例导致重大失败.

由于.NET无法确定请求代理(HttpWebRequest)是否支持cookie,因此它会响应POST请求,并将302 Found重定向到同一位置:

  • AspxAutoDetectCookie响应中指定的cookie
  • AspxAutoDetectCookie在转发位置中命名的查询参数

然后请求代理请求新位置,这样HttpWebRequest做.当.NET AspxAutoDetectCookie在查询字符串中看到时,它知道这是一个重新请求,它可以通过查看命名的cookie AspxAutoDetectCookie是否在请求标头中来确定是否支持cookie .

问题是,大多数请求代理(Web浏览器HttpWebRequest)将302 Found视为303 See Other并将重新请求设置为GET,而不管原始HTTP方法如何!在初始POST请求中发送的任何数据都不会被转发.

正确的响应应该是307临时重定向,它不会更改请求方法.(对位置X的POST请求重定向到位置Y 的POST请求.)

有没有办法在.NET中更改此行为,以便POST请求不被销毁?

有关3xx重定向的信息

.net asp.net cookieless http-status-code-302 http-status-code-307

7
推荐指数
1
解决办法
2387
查看次数

Safari xhr(AJAX)请求w /跨域重定向失败

如何重现这个问题

  1. 使用Safari向服务器发出AJAX请求
  2. 让服务器响应w/302到另一个域

如果任这些条件符合,它的工作原理.

  1. 使用其他浏览器,它的工作原理.
  2. 让服务器重定向到同一个域,它的工作原理.

.

Load: function (in_url, in_cb, in_responseType) {
  var xhr = new XMLHttpRequest();
  xhr.open('GET', in_url, true);
  xhr.onload = function () {
    if (xhr.status === 200) {
      in_cb(null, xhr.response);
    } else {
      in_cb(new Error('[Loader] Could not fetch from: '+in_url+', status: '+xhr.status));
    }
  };
  xhr.onerror = function (error) {
    in_cb(error);
  };

  xhr.send();
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述

javascript safari xmlhttprequest cors http-status-code-302

7
推荐指数
1
解决办法
1104
查看次数

ReactJS 发送 GET 请求,响应 302 重定向,收到 CORS 错误

这是我的堆栈:

  1. 前端服务器:Node + ReactJS ( f.com)
  2. 后端服务器(API):Golang ( b.com)

我在开发环境中执行此操作,我使用create-react-app通过命令运行我的前端服务器npm start。我想使用 处提供的 SSO 执行身份验证sso.example.com/login。理想情况下,只要在未经适当授权的情况下向后端服务器发出请求,就会通过 HTTP 302 重定向到 SSO 页面进行响应。所以顺序是:

  1. ReactJS 发送 GET 请求到b.com/users
  2. Golang 用 http.Redirect(" sso.example.com/login")响应
  3. ReactJS 应用程序收到 CORS 错误sso.example.com,我无法控制添加Access-Control-Allow-Origin:*响应标头

如何成功重定向我的 GET 请求?

go node.js cors http-status-code-302 reactjs

7
推荐指数
1
解决办法
2万
查看次数

角度 - 如何处理重定向

我使用 spring security,它将未经身份验证的用户重定向到登录页面。

因此,当未经身份验证的 Angular 客户端向端点(期望 JSON)发送 GET 请求时,它接收到登录页面的 HTML 内容,并且 JSON 解析器失败(Angular2 watch for 302 redirect when fetching resource

const httpObservable = this.http.get(urlThatWillRedirect).subscribe(data => ...) // JSON parser will fail
Run Code Online (Sandbox Code Playgroud)

如何在 Angular 中处理重定向?

http-status-code-302 angular

7
推荐指数
2
解决办法
3万
查看次数

IE 302重定向无缓存标头问题

在发布信息后,将返回302重定向.此重定向旨在重新加载当前页面.

这一切都很好,但IE在标题中添加了No-Cache:

Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)

我们正在使用Squid来缓存我们的内容,并将其置于标题中绕过squid.
由于这种重定向经常被使用(没有办法解决这个问题),这大大增加了我们系统的负载.

Firefox没有这个问题,它只是请求重定向页面而不更改标题,这正是我们想要的.

有什么办法可以阻止IE添加无缓存吗?

internet-explorer redirect caching http-status-code-302

6
推荐指数
1
解决办法
8671
查看次数

如何在QtWebKit中获得第一个重定向(301或302)事件

我们正在使用QtWebKit 4.7并想知道帧加载何时进行重定向.

目前我们在QNetworkAccessManager的子类中计算传出请求,我们在其中覆盖createRequest.

这在大多数情况下都很好用,但是当第一个响应是301或302(重定向)时,它会在某处被吞噬.

我们只需要通过以下方式请求网址:

QNetworkRequest request(QUrl("http://www.twitter.com")); // 301 to twitter.com
frame->load(request);
Run Code Online (Sandbox Code Playgroud)

qt qtwebkit qwebkit http-status-code-302 qt4.7

6
推荐指数
2
解决办法
3895
查看次数

互联网延迟:在Chrome开发者工具网络标签中,PENDING和FROM CACHE的含义是什么

我想确认一下我是否正确理解这一点.当我在Chrome地址栏中输入"google.com"时遇到严重的延迟问题,但在我在其他浏览器中执行相同操作时却没有.我还下载了Canary,并在那里遇到同样的问题.我认为其他浏览器可能会重写URL客户端,避免前两个301和302错误.似是而非?

"待定"是否意味着该请求尚未得到满足?并且"(来自缓存)"是否意味着浏览器正在我的PC上查找该文件?

为"google.com"请求返回301错误需要21秒,然后返回302秒并将最终重定向返回到完整网址.这是否意味着处理此类请求的服务器真的负担过重?

为什么这些图片需要很长时间才能获取?59秒,还在等待?

Chrome开发者工具网络标签截屏

google-chrome latency http-status-code-301 http-status-code-302

6
推荐指数
1
解决办法
1140
查看次数

为什么 RESTEasy 会忽略 POST 方法的 HTTP 302 状态代码?

我对 JAX-RS 和 RESTEasy 很陌生,有一件事我真的不明白。首先我来描述一下我们做了什么:

  • 我们使用 JBoss AS 7.2(是的,就是那个旧版本)和 RESTEasy 2.3.5 进行机器对机器通信。
  • 我们编写了一项接受 POST 消息但不返回正文的服务。使用通过 void 方法映射到 Java 接口的 JAX-RS 注释。
  • 该服务应仅允许安全 (HTTPS) 通信,不允许 HTTP。为了防止意外使用 HTTP,我们将Transport-guarantee设置为CONFIDENTIAL。因此,每个 HTTP 请求都会导致带有状态代码 302 和 HTTPS 位置的响应。
  • 现在有人不小心配置了 HTTP URL 而不是 HTTPS。服务器回复了 302 状态代码和正确的位置。不幸的是,客户端既没有遵循重定向也没有引发异常。因此,它没有表明呼叫未接通

关于HTTP 状态代码的RFC,我理解 POST 方法不应该有自动重定向。我本以为会引发异常。相反,这个问题会被忽略,让客户端应用程序根本没有机会检测到它刚刚发出的调用没有到达它应该到达的地方。为什么会出现这种情况以及我该如何正确执行此操作

我不相信像 RESTEasy 这样的库不允许正确处理这种情况,所以我确信我使用它是错误的。不幸的是,即使经过几个小时的谷歌搜索,我仍然没有找到我的问题的答案。我希望这里有人能启发我。

为了重现该问题并允许与其他 JAX-RS 实现进行比较,我将一个小型演示应用程序上传到了Github。它只需要 Maven 和 JDK 8 即可运行。

先感谢您,

马丁

post jax-rs resteasy http-status-code-302

6
推荐指数
0
解决办法
944
查看次数

标题未设置 RewriteRule [R=302,L]

目标:我正在尝试通过 htaccess 设置两个标头:

X-Robots-Tag: noindex, nofollow
Location: http://example.com/foo
Run Code Online (Sandbox Code Playgroud)

PoC:在 PHP 中可以做到这一点,效果很好:

header( "X-Robots-Tag: noindex, nofollow", true );
header( "Location: " .  $url, 302 );
Run Code Online (Sandbox Code Playgroud)

问题:在我的.htaccess文件中,我有这个:

# Do not let robots index anything from /out/
RewriteCond %{REQUEST_URI} ^/?out/?
Header set X-Robots-Tag "noindex, nofollow"

...

# Redirect /out/example/ type links
RewriteRule ^/?out/example/(.*)$ "http://example.com/$1" [R=302,L]
Run Code Online (Sandbox Code Playgroud)

我确定在某处我没有看到一个简单的错误,但是如果我检查http://localhost/out/example/fooLocation标头,标头已设置,但X-Robots-Tag不是。

HTTP/1.1 302 Found
Date: Wed, 08 Jun 2016 23:59:18 GMT
Content-Type: text/html; charset=iso-8859-1
Transfer-Encoding: chunked
Connection: …
Run Code Online (Sandbox Code Playgroud)

apache .htaccess redirect http-headers http-status-code-302

6
推荐指数
1
解决办法
3033
查看次数

为什么浏览器不在后退按钮历史记录中保留状态 302 页面?

当对 HTML 页面的请求响应 HTTP 302 Found(又名“临时重定向”)时,FireFox 会“就地”加载重定向页面,而不会将最初打开的 URL 保留U在“后退按钮历史记录”中。

一种流行的用途302(以及正确使用代码,我认为)似乎是重定向到一个/cookieAbsent页面,提醒用户他们的浏览器不“支持”(用户可能更可能禁用了)cookie。

这种浏览器行为的后果是,如果用户决定启用 cookie,重新加载当然只是重新加载(服务器无法可靠地将您发回,如果它愿意的话/cookieAbsent这是不好的,并且后退按钮返回打开(无论是通过超链接还是键入)原始U. 这对我来说是有意义的301 Moved Permanently(又名“永久重定向”),但似乎不受欢迎302,尤其是像这样使用时。

如果我正在实现一个浏览器 - 或者,也许,希望报告现有浏览器中的错误或功能请求 - 这种行为是通用规范所要求的,还是仅仅由浏览器来做它认为合适的事情?

browser http-status-code-302

6
推荐指数
1
解决办法
4140
查看次数