问题在于,当我使用以下方法时,整个网址都会显示出来。也许是因为GET请求如果href。我想避免这种情况,我想要POST请求。
的index.html
<a id="ccviewMiniStatementId">View mini statement</a>
nonFinancial.js
$('#ccviewMiniStatementId').click(function(event) {
var ccMonthVal=$("#ccMonthId").val();
var ccYearVal=$("#ccYearId").val();
var cCRefNumId=$("#cCRefNumId").val();
var errExpVal = validateCcExpiry();
if (errExpVal==false)
{
event.preventDefault();
return false;
}
// I am passing values to my controller and there it is GET
//because POST is not supported. I want to make it POST.
$("#ccviewMiniStatementId").attr("href", "getpdfcreditcard?month="+ccMonthVal+"&year="+ccYearVal+"&cCReferenceNo="+cCRefNumId);
$("#pdfViewer").submit();
});
我的控制器 NonFinancial.java
@RequestMapping(value="/getpdfcreditcard", method=RequestMethod.GET, params = {"month","year","cCReferenceNo"})
public ResponseEntity<byte[]> getPDF(@RequestParam(value="month", required = true) String month,
@RequestParam(value="year", required = true) String year,
@RequestParam(value="cCReferenceNo", required = true) String cCReferenceNo,
HttpServletResponse response) throws IOException, SQLException {
logger.debug("month/year/cCReferenceNo: "+month+"/"+year+"/"+cCReferenceNo);
}
所以我想:当我点击一个锚标签时,它应该进行POST。我怎么做?我不想使用<form></form>
答案 0 :(得分:0)
看起来你正在使用jQuery,所以很容易:
<div layout="row" layout-wrap>
<div flex-gt-sm="{{vm.data.mode === 'ADD' ? 50: 25}}"></div>
<div flex-gt-sm="{{vm.data.mode === 'ADD' ? 50: 25}}"></div>
<div flex-gt-sm="{{vm.data.mode === 'ADD' ? 50: 25}}"></div>
</div>
答案 1 :(得分:0)
在HTML中无法使用href
使用POST。但是,正如@modernator指出的那样,您可以使用JavaScript来监听click事件,然后手动触发AJAX请求。
或者,您可以使用带有隐藏输入的表单。在那里,您可以指定提交方法。例如:
<form method="post" action="<your-url>">
<input type="hidden" name="month" value="<month-value>">
<button type="submit">View Statement</button>
</form>