2016-01-01 81 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

好主意。我現在會嘗試。非常感謝! –