如何通过mvc中的Redirect发出POST请求?

时间:2016-01-01 03:39:51

标签: asp.net-mvc

从Controller,有没有办法使用参数?

向特定域发送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...
})

有可能吗?

1 个答案:

答案 0 :(得分:3)

使用RedirectResult方法返回Redirect时,它会向网址发出新的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服务发送包含某些数据的Post / Get请求。由于这种情况发生在代码中,因此您的浏览器仍然会调用代码中的上一页。通常,此解决方案用于与Web服务/其他API进行通信以获取/发布数据。