javascript - Ajax 只适用于部分用户?

标签 javascript jquery ajax

我刚刚为客户构建了一个 AJAX 联系表单,但客户提示它不起作用。每当我(或任何其他人,就此而言)测试它时,它都工作得很好。客户声称他们看到“Ajax Error”作为错误文本。这是我的代码:

$.ajax({
    type: 'POST',
    url: "http://example.domain.com/content/contact/php/verify.php",
    dataType: 'html',
    async: true,
    data: {
        captchaResponse: $("#g-recaptcha-response").val(),
        contactType: $('#contactFormType').val(),
        contactName: $('#contactFormName').val(),
        contactEmail: $('#contactFormEmail').val(),
        contactPhone: $('#contactFormPhone').val(),
        contactMessage: $('#contactFormMessage').val()
    },
    success: function (data) {
        // Success...
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        grecaptcha.reset();

/* This is the error the client is seeing, that no one else is */

        $('#contactErrorField').html('AJAX Error: ' + errorThrown);
        $('#contactErrorWrapper').show(0);
        $('#contactBodyOverlay').hide(0);
    }

客户端看到的只是“AJAX Error:”,errorThrown 变量中没有实际的错误文本。

有谁知道为什么这段代码对我的客户可能会失败,但对其他人来说似乎工作得很好。我很紧张这是她的事情,但我不愿意在尽我所能之前责怪我的客户。

最佳答案

给定:

  • url 参数中有绝对 URI
  • errorThrown 参数为空

最可能的解释是,您的客户端正在访问与您用于自己测试的 URI 略有不同的 URI(例如 http:// 而不是 https://) 并触发跨域请求,您的服务器未授予使用 CORS 的权限。

您可以通过让客户端在浏览器中打开开发人员工具并查找有关 Access-Control-Allow-Origin 的错误消息来确认这一点。

可以通过使用相对 URI(或通过在服务器上设置 CORS 支持)来缓解此问题。

关于javascript - Ajax 只适用于部分用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208444/

相关文章:

javascript - 模拟宽度 : calc(100%) - with jQuery not working

javascript - 如何等待AJAX​​请求的结果?

javascript - jquery 动态设置 colspan

javascript - Socket.io (Node.js) 未检测到已连接的 QTcpSocket

javascript - .html() 之后的操作

javascript - 在 ajax 请求后执行 Google AdWords 转化跟踪代码

javascript - 在 Angular js中自动聚焦一行

c# - 如何使用 ajax 将文件上传到 asp.net mvc Controller 操作

javascript - jquery Menu State使用父类

javascript - ExtJS 面板布局 : how to correctly layout Panels