我有一个按钮,它对服务器执行POST请求,但是不起作用。
我的应用程序禁用了csfr,我还有其他使用$ .post()的按钮,它可以正常工作。在讨论的功能中,它永远不会到达服务器端。
这是按钮:
<button onclick="honor('gold', '${loggedUser.username}')" style="margin-right: 2%;"
class="btn btn-info pull-right">
<span style="padding: 2em 4em;">NEXT</span>
</button>
这是荣誉功能:
function honor(type, username) {
var message = $("#message").val();
var name = $("#honor-box").attr("name");
var id = name.substring(1);
$.ajax({
type : "POST",
url : "http://(emitted)/honor?type=" + type + "&id="
+ id + "&name=" + username,
data : message,
dataType : "json"
});
}
服务器端函数头:
@RequestMapping(value = "/honor", method = RequestMethod.POST)
public void giveHonor(Principal principal, Model model, @RequestParam(name = "type") String type,
@RequestParam(name = "id") String id, @RequestParam(name = "name") String name,
@RequestParam("json") String message)
当我删除数据时,它会起作用:从honor()中删除消息,并从GiveHonor()中删除@RequestParam(“ json”)字符串消息,因此问题始终存在。
我需要honor()函数将信息发送到服务器端的GiveHonor()。
答案 0 :(得分:0)
您收到了作为参数的消息。从ajax将其作为参数传递。
$.ajax({
type : "POST",
url : "http://(emitted)/honor?type=" + type + "&id="
+ id + "&name=" + username + "&json="+ message,
});