2016-01-01 42 views
2

从控制器,有没有办法发送POST请求到具有参数的特定域?如何通过mvc中的重定向发出POST请求?

我想归档看起来是这样的:

public ActionResult Index() 
{ 
    Redirect("https://www.anothersite.com", new { s = "abc" }); 
} 

我想在客户端做在服务器端,而不是用ajax:

$.ajax({ 
    url: 'https://www.anothersite.com', 
    type: 'POST', 
    data: { s: 'abc' } 
}).done(function (data) { 
    // logic... 
}) 

这可能吗?

回答

3

当您使用Redirect方法返回RedirectResult时,它将向该URL发出一个新的GET请求。

此外,您的语法是错误的。它应该是return Redirect("https://www.anothersite.com");

如果你还想做一个POST请求到另一个域名,你可以做的是,在form操作方法设置到其他域网址是什么,设置方法为“POST”,并提交形式和这将做一个表单提交到新的页面。

<form action="http://www.stackoverflow.com" method="POST"> 
    <input type="submit" /> 
</form> 

如果你想从你的服务器端代码POST请求,你应该考虑使用HttpClient类,它可以使一个邮政/获取一些数据到另一个域/ Web服务请求。由于这种情况发生在代码中,您的浏览器仍然会从代码中调用您的上一页。通常,这个解决方案用于与Web服务/ rest api进行通信以获取/发布数据。

+0

好主意。我现在会尝试。非常感谢! –