Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Onclick-ajax不起作用_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript Onclick-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

当我点击提交按钮时,textarea标签的信息应该用ajax发送到邮件中。有人能帮我吗?谢谢

$(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。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许源“”访问。这是因为您正在另一个域上发送请求。如果您修复了跨站点原点问题,此代码将起作用。谢谢