Javascript Onclick-ajax不起作用
当我点击提交按钮时,textarea标签的信息应该用ajax发送到邮件中。有人能帮我吗?谢谢Javascript Onclick-ajax不起作用,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,当我点击提交按钮时,textarea标签的信息应该用ajax发送到邮件中。有人能帮我吗?谢谢 $(document).on("click", "#submit-btn", function() { 问题是因为您已连接到提交按钮的单击事件,而不是表单的提交事件。这意味着表单仍按正常方式提交,来自AJAX请求的响应将被忽略 如前所述,钩住表单的提交事件以解决问题,并使用preventDefault()停止标准表单提交: $(document).on("submit", "#yourFormElem
$(document).on("click", "#submit-btn", function() {
问题是因为您已连接到提交按钮的
单击事件,而不是表单的提交事件。这意味着表单仍按正常方式提交,来自AJAX请求的响应将被忽略
如前所述,钩住表单的提交
事件以解决问题,并使用preventDefault()
停止标准表单提交:
$(document).on("submit", "#yourFormElement", function(e) {
e.preventDefault();
$.ajax({
url: "https://ivr.callxl.com/callXLWeb/SendingEmail",
type: 'POST',
contentType: "application/json; charset=utf-8",
data: { comment: $("#cmessage").val() },
dataType: "json",
success: function (data, textStatus, jqXHR) {
if (data.success) {
alert("successfully sent");
} else {
// handle error here...
}
},
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.responseText);
console.log("Something really bad happened " + textStatus);
$("#errorResponse").html(jqXHR.responseText);
}
});
});
还请注意,我删除了默认的async
属性(正如true
),并为数据
属性提供了一个对象,以便为您编码值
您还应该确保您呼叫的域支持跨域请求,否则您的请求将被阻止。如果是这样,那么您需要在服务器端发出请求。我认为您应该这样做
$("#submit-btn").on("click",function() {
$.ajax({
url: "https://ivr.callxl.com/callXLWeb/SendingEmail",
type: 'POST',
contentType: "application/json; charset=utf-8",
data: { comment: $("#cmessage").val() },
dataType: "json",
success: function (data, textStatus, jqXHR) {
if (data.success) {
alert("successfully sent");
} else {
// handle error here...
}
},
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.responseText);
console.log("Something really bad happened " + textStatus);
$("#errorResponse").html(jqXHR.responseText);
}
});
});
您正在进行跨域ajax调用吗?您的网页是否也是ivr.callxl.com
的一部分?您必须防止在提交按钮时单击默认行为,否则您的表单将被提交问题可能是因为url吗?我怀疑这是在不同的领域,它可能是一个CORSissue@user2181397是的,这可能也是一个问题。在答案中添加了一条注释。@a.Wolff谢谢。需要注意的是,没有早上好:)@user2181397检查您的浏览器控制台是否有任何关于跨域的错误request@user2181397我刚刚检查了一下,这个服务器不接受跨域请求,也不处理jsonpfirst。首先,您必须将按钮类型从“提交”更改为“按钮”。提交更改后,当您单击submit按钮时,您可以在控制台中检查是否存在显示如下内容的错误。无法加载XMLHttpRequest。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许源“”访问。这是因为您正在另一个域上发送请求。如果您修复了跨站点原点问题,此代码将起作用。谢谢