Angular2,如何防止HTTP重定向
Angular2,如何防止HTTP重定向
我试图通过angular2的Http来模拟用户登录。让我们描述一下情况。
我有一个PHP应用程序,用户可以通过http://sample.com/login.php
URL登录(存在一个带有用户名和密码输入的表单,用户需要填写输入并点击提交按钮),如果登录成功,他们将被重定向到http://sample.com/dashboard.php
。
所以我创建了一个带有"username"和"password"的表单数据的Http
post请求,并将Http头的content-type
设置为application/x-www-form-urlencoded
。
登录工作正常,请求自动重定向到http://sample.com/dashboard.php
。
问题是我需要访问第一个请求的响应头(http://sample.com/login.php),但是Http响应给我第二个请求的响应头(http://sample.com/dashboard.php)。
有没有办法阻止Http重定向?或者在状态码为302时抛出错误?
var headers = new Headers({'Content-Type':'application/x-www-form-urlencoded'}); var options = new RequestOptions({ headers: headers }); Http.post("http://sample.com/login.php",'username=admin&password=123' , options) .subscribe(success => { // 成功并返回重定向后的响应 // http://sample.com/dashboard.php的响应 }, error => { // 错误处理程序 } );
出现的原因:由于XMLHttpRequest(低级API)没有暴露这样的方法,所以无法阻止HTTP重定向。
解决方法:可以参考以下链接中的解决方案。