2015-03-13 59 views
3

如何使一個控制器方法重定向到其他網站與POST請求?如何使用彈簧mvc控制器發出發佈請求?

@RequestMapping("/link) 
    public RedirectView goToTheSite(ModelMap model) { 
     model.put("name", "wow"); 
     return new RedirectView("https://www.thesite.com", true, false, false); 

    } 

但是,這是行不通的, 如何以正確的方式做到這一點?

回答

1

發送POST的唯一方法是將填充HTML表單發送到瀏覽器,用行動參數指向新的網站,方法=「POST」。

<form name="myform" action="https://www.thesite.com" method="post"> 
    <input name="name" type="hidden" value="true" /> 
    <input name="phone" type="hidden" value="false" /> 
    <input name="phone" type="hidden" value="false" /> 
    <noscript> 
     <input type="submit" value="Click here to continue" /> 
    </noscript> 
</form> 

然後添加JavaScript自動提交形式:

<script type="text/javascript"> 

$(document).ready(function() { 
    document.myform.submit(); 
}); 
</script> 
+0

是的,這可以工作,但出於安全原因,我想這個職位要求在服務器side.Can Spring MVC的製作能做到嗎? – user2802211 2015-03-14 00:40:52

+0

@ user2802211你做到了嗎?我有同樣的要求.. :( – 2016-05-05 12:17:00

2

如何使一個控制器方法重定向到其他網站與後 要求?

重定向意味着您告訴瀏覽器發出GET請求,Spring MVC中沒有任何開箱功能可以從控制器發出POST請求。

如何做到這一點的正確方法嗎?

使用Apache HTTP client

Request.Post("https://www.thesite.com/login") 
    .bodyForm(Form.form().add("username", "vip").add("password", "secret").build()) 
    .execute().returnContent(); 
相關問題