嗨,我刚开始学习Spring、AJAX和JSON。当我试图发回一条信息时,我遇到了一个错误。
信息。jsp
function success(data) {
$("#form" + data.target).toggle();
$("#alert" + data.target).text("Message sent.")
startTimer();
}
function error(data) {
alert("Error sending message");
}
function sendMessage(i, name, email){
var text = $("#textbox" + i).val();
$.ajax({
type: "POST",
url: '<c:url value="/sendmessage" />',
data: JSON.stringify({"target": i, "text": text, "name": name, "email": email}),
success: success,
error: error,
contentType: "application/json",
dataType: "json"
});
}
function showMessages(data){
$("div#messages").html("");
for(var i=0; i<data.messages.length; i++) {
var message = data.messages[i];
var messageDiv = document.createElement("div");
messageDiv.setAttribute("class", "message");
var subjectSpan = document.createElement("span");
subjectSpan.setAttribute("class", "subject");
subjectSpan.appendChild(document.createTextNode(message.subject));
var contentSpan = document.createElement("span");
contentSpan.setAttribute("class", "contentText");
contentSpan.appendChild(document.createTextNode(message.content));
var nameSpan = document.createElement("span");
nameSpan.setAttribute("class", "nameSpan");
nameSpan.appendChild(document.createTextNode("From: "+ message.name + '('));
var link = document.createElement("a");
link.setAttribute("class", "replylink");
link.setAttribute("href", "#");
link.setAttribute("onClick", "showReply(" + i + ")");
link.appendChild(document.createTextNode(message.email));
nameSpan.appendChild(link);
nameSpan.appendChild(document.createTextNode(")"));
var alertSpan = document.createElement("span");
alertSpan.setAttribute("class", "alert");
alertSpan.setAttribute("id", "alert" + i);
var replyForm = document.createElement("form");
replyForm.setAttribute("class", "replyForm");
replyForm.setAttribute("id", "form" + i);
var textarea = document.createElement("textarea");
textarea.setAttribute("class", "replyArea");
textarea.setAttribute("id", "textbox" + i);
var replyButton = document.createElement("input");
replyButton.setAttribute("class", "replyButton");
replyButton.setAttribute("type", "button");
replyButton.setAttribute("value", "reply");
replyButton.onclick = function(j, name, email) {
return function() {
sendMessage(j, name, email);
}
}(i, message.name, message.email);
replyForm.appendChild(textarea);
replyForm.appendChild(replyButton);
messageDiv.appendChild(subjectSpan);
messageDiv.appendChild(contentSpan);
messageDiv.appendChild(nameSpan);
messageDiv.appendChild(alertSpan);
messageDiv.appendChild(replyForm);
$("div#messages").append(messageDiv);
}
}
控制器。JAVA
@RequestMapping(value="/sendmessage", method=RequestMethod.POST, produces="application/json")
@ResponseBody
public Map<String, Object> sendMessages(Principal principal, @RequestBody Map<String, Object> data){
String text = (String)data.get("text");
String name = (String)data.get("name");
String email = (String)data.get("email");
Integer target = (Integer)data.get("target");
System.out.println(name + " , " + email + " , " + text);
Map<String, Object> returnVal = new HashMap<String, Object>();
returnVal.put("success", true);
returnVal.put("target", target);
return returnVal;
}
我尝试了很多不同的方法来解决这个问题,但都没有效果,我无法发布消息。
有什么帮助或原因让我一直犯这个错误吗?
jquery。js:4帖子http://localhost:8080/spring/sendmessage403(禁止)发送@jquery。js:4 ajax@jquery。js:4 sendMessage@messagesView:32(匿名函数)@messagesView:90
截图
第一步:在表单中添加id---
<form id='formid' ....>
步骤2:将表单传递为序列化表单---
$.ajax({
type: "POST",
url: '<c:url value="/sendmessage" />',
data: ('#formid').serialize(),
success: success,
error: error,
contentType: "application/json",
dataType: "json"
});
我也遇到了同样的问题,您需要将CSRF头添加到AJAX POST请求中。看看跨站点请求伪造。我现在不在我的开发系统中,所以不能发布一个例子,但是使用这个页面上的信息对我很有用。
问题内容: 我制作了供个人使用的python脚本,但不适用于Wikipedia … 这项工作: 这不起作用: 这是错误: 问题答案: 在当前代码内: Python 2.X 的Python 3.X 带有Selenium的Python 3.X(执行Javascript函数) 修改后的版本起作用的原因是因为Wikipedia检查User-Agent是“流行的浏览器”
有人能帮我找出我的SSLHandshake有什么问题吗? 我有一个Java客户端应用程序(使用Spring WS-security)试图将数据发送到服务器(不在我的控制范围内),我设置了以下内容 具有来自服务器的证书的客户端信任库 Java密钥库与我的私人密钥输入证书 在我的调试SSL握手日志(某些部分缩写)下面,我似乎找不到任何错误。。这是服务器端需要调查的事情吗?(我不确定,他们也不确定,这就
Spring我是新来的。我试图在我的数据库中添加一个新目标。在我添加spring security之前,它是有效的,但现在如果我单击添加新目标,我有一个问题: 出现意外错误(类型=禁止,状态=403)。被禁止的 我的goat-add.html: WebSecurity配置类: 我的控制器: 我读到这个问题可以是如果不使用csrf,但我不明白我怎么能解决它。 所有代码:https://github.
问题内容: 我正在尝试使用python自动下载历史股票数据。我尝试打开的URL响应为CSV文件,但无法使用urllib2打开。我曾尝试按照前面几个问题中的说明更改用户代理,甚至还尝试接受响应cookie,但是没有运气。你能帮忙吗? 注意:相同的方法适用于yahoo Finance。 码: 错误 http_error_default中的文件“ C:\ Python27 \ lib \ urllib2
问题内容: 我有以下代码: 但是,它引发此错误: 谁能告诉我为什么会这样吗? 问题答案: 我相信这是因为相对的路径。“ ../”被认为是恶意的。首先解析本地路径,然后调用。您可以事先解析路径。
我有这个代码: 但是,它会抛出以下错误: 有人能告诉我为什么会这样吗?