我希望在HTTPS登录后将用户重定向到站点上的HTTP页面.对整个站点使用HTTPS不会发生.
到目前为止我所拥有的是以下内容:
这是有效的,除了在IE6中的我的机器上,用户收到错误消息,因为默认是在退出安全页面时发出警告.这些错误对我来说是一个可用性杀手,因而是一个显而易见的问题.我改变它,以便第3步
但这很慢; 即使在我的本地机器上,它也明显慢于302重定向.
有没有更好的方法来实现人们使用的标准设置上无障碍重定向的目标?IE6占我们流量的20%-25%.此外,是否有人有任何关于哪些浏览器会发出警告以及哪些浏览器不会警告302重定向的好信息?我正在考虑黑名单IE6,以便只有它获得缓慢的元刷新,其他人获得快速302.
我想访问一个首先需要(tomcat服务器)身份验证的站点,然后使用POST请求登录并让该用户查看该站点的页面.我使用Httpclient 4.0.1
第一次身份验证工作正常但不是总是抱怨此错误的登录:"302暂时移动"
我保持饼干和我保持上下文,但没有.实际上,似乎登录工作,因为如果我写错了参数或用户||密码,我会看到登录页面.所以我猜不起作用的是自动重定向.
在我的代码之后,它始终抛出IOException,302:
DefaultHttpClient httpclient = new DefaultHttpClient();
CookieStore cookieStore = new BasicCookieStore();
httpclient.getParams().setParameter(
ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
HttpContext context = new BasicHttpContext();
context.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
//ResponseHandler<String> responseHandler = new BasicResponseHandler();
Credentials testsystemCreds = new UsernamePasswordCredentials(TESTSYSTEM_USER, TESTSYSTEM_PASS);
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
testsystemCreds);
HttpPost postRequest = new HttpPost(cms + "/login");
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("pUserId", user));
formparams.add(new BasicNameValuePair("pPassword", pass));
postRequest.setEntity(new UrlEncodedFormEntity(formparams, "UTF-8"));
HttpResponse response = httpclient.execute(postRequest, context);
System.out.println(response);
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK)
throw new IOException(response.getStatusLine().toString());
HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute( …Run Code Online (Sandbox Code Playgroud) 我正在使用ASP.NET MVC和jQuery,我有一个在每个页面上重复的UserControl.在每个页面请求中,都会发生AJAX回调.到现在为止还挺好.
但是当我在localhost并且我发布该网站时,我注意到这个AJAX正在抛出一个302错误.这仅发生在https页面上,仅在FF和Chrome中.在IE上,AJAX请求工作正常.
这302错误是什么?为什么它只出现在https页面上,只出现在FF和Chrome中?
我已经实现了ajax请求来填充我的下拉字段.它工作正常但是当我保持闲置一段时间并在下拉列表中选择一些值时,ajax请求得到302找到的响应.是因为会议结束了.请让我知道解决方案,我们可以做一些设置,它将永远不会得到响应302找到.
我们的nginx前端后面有几个后端.
是否有可能拦截这些后端发送的301/302重定向并让nginx处理它们?
我们独自在于:
error_page 302 = @target;
Run Code Online (Sandbox Code Playgroud)
但我怀疑301/302重定向可以像404等一样处理...我的意思是,error_page可能不适用于200等错误代码?
总结一下:
我们的后端偶尔发回301/302s.我们想让nginx拦截这些,并将它们重写到另一个位置块,在那里我们可以用它们做任何其他的事情.
可能?
谢谢!
redirect reverse-proxy nginx http-status-code-301 http-status-code-302
我正在试图找出如何重定向到新页面(不同的应用程序,控制器,操作)并维护当前的POST数据.
我的应用程序正在验证POST数据,如果满足某个条件,我想重定向到其他位置,但要确保POST数据作为POST数据传递到该新页面.这是一个粗略的例子:
POST /app1/example HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
var1=foo&var2=bar
Run Code Online (Sandbox Code Playgroud)
在我的exampleAction(Zend_Controller_Action)中,我检查是否var1 == foo,如果它,我想用相同的POST数据重定向(302)到/ app2/example.有点像这样吗?
HTTP/1.x 302 Found
Location: /app2/example
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
var1=foo&var2=bar
Run Code Online (Sandbox Code Playgroud)
我可以看到如何使用Zend_Http_Client创建新的HTTP请求,但我不打算简单地请求页面并显示内容.我还应该继续使用Zend_Http_Client吗?目前我正在玩这样的东西:
$this->getResponse()->setRedirect('/app2/example/', 302);
$this->getResponse()->setBody(http_build_query($this->_request->getPost()));
Run Code Online (Sandbox Code Playgroud)
我敢肯定我想做的事情是通过一些诡计和恶魔妄想来实现的,但这绝对暗指我.任何帮助表示赞赏.
- rk
使用WebRequest我想知道我是否得到了
"302暂时移动"
响应而不是自动获取新网址.
我正在读这个,但我并没有从那里得到重定向请求应该具有的请求类型,在什么情况下,即函数(初始请求类型,响应类型) - > redirect-request-type.
在我的特定情况下,我有:
谷歌浏览器使用GET进行重定向请求.
# http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4
if r.status_code is codes.see_other:
method = 'GET'
else:
method = self.method
Run Code Online (Sandbox Code Playgroud)
即,在303(codes.see_other)的情况下,redirect-request-type是GET ,在所有其他情况下,它是初始请求类型.即,就我上面的特定情况而言,与Chrome相比,它将是POST.
这可能是错误的,因为我有一个网站,这实际上似乎没有正确的工作(即网站这种方式表现不佳).
什么是正确的方式/功能?
我正在尝试AJAXify一个旧的网站表单而不修改后端.最初,后端会在收到表单后回复"302 Moved"重定向到"谢谢"页面.
现在,当我尝试使用jQuery $ .ajax调用提交表单时,表单数据已成功提交,但"302 Moved"重定向似乎被浏览器取消,jQuery不知道发生了什么.
我的问题是无论发生什么,$ .ajax调用返回错误并且状态= 0,所以我无法区分成功提交和错误.
有没有办法阻止浏览器尝试遵循重定向,或至少找回正确的响应代码?(我正在使用Chrome.)
基本上我即将开始在网站上工作,我想要一些我可以添加到我的.htaccess文件(或其他地方)的东西,它将像这个伪代码一样工作:(我的ip将取代127.0.0.1 )
if (visitors_ip <> 127.0.0.1)
redirectmatch ^(.*)$ http://www.example.com/under-construction.html
Run Code Online (Sandbox Code Playgroud)
希望这是有道理的......