Angular2,如何防止HTTP重定向

20 浏览
0 Comments

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 => {
        // 错误处理程序
    }
);

0
0 Comments

出现的原因:由于XMLHttpRequest(低级API)没有暴露这样的方法,所以无法阻止HTTP重定向。

解决方法:可以参考以下链接中的解决方案。

Prevent redirection of Xmlhttprequest

0