我有一个 WebApi Controller ,在调用它后我希望它将我重定向到另一个站点
这是我的 C# 代码
public async Task<HttpResponseMessage> Login(LoginParameters parameters, [FromUri]string returnUrl)
{
//same validations
var response = Request.CreateResponse(HttpStatusCode.Moved);
response.Headers.Location = new Uri("Http://www.google.com");
return response;
}
我的 JavaScript 代码是这样的
'user strict'
var login = function ($scope, $http) {
var parameters = {
userName: userName,
password: password
};
var url = '/api/user/Login';
$http.post(url, parameters);
.then(function(response){
/*some random code that i will remove */
});
};
login.$inject = ['$scope', '$http'];
module.exports = login;
查看 chrome 控制台,我意识到 http POST 调用返回 httpstatus = 302。然后我看到另外 2 个请求到 google.com,但我的页面未重定向。那么我做错了什么?
提前致谢
最佳答案
当您使用$http
时,它使用一个XMLHttpRequest
对象,该对象不会调整用户的位置。它甚至会遵循重定向。您有几个选择:
您可以将新位置作为字段返回,然后在
.then
回调中分配window.location
以引发重定向。您可以使用标准表单发布到资源,然后浏览器将适本地遵循重定向。
关于javascript - WebApi 重定向到外部站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39858490/