javascript - 使用嵌入式谷歌表单绕过 CORS

标签 javascript jquery ajax xml cors

我正在尝试通过嵌入式表单向 Google 发送表单数据。

我找到了这个 post这似乎回答了我的问题,但我收到了 CORS 错误。有办法解决这个问题吗?

其他帖子似乎说 CORS 不是问题,但我遇到了错误。

这是我的代码:

-JS-

function ajax_post() {
  var field1 = $('#email').val();

  $.ajax({
      url: "https://docs.google.com/forms/d/e/xxxxxxxxxxxxxxxxxxxxxx/formResponse",
      data: {"entry.xxxxxxxxxx": field1},
      type: "POST",
      dataType: "xml",
      statusCode: {
          0: function() {
          //Success message
          },
          200: function() {
          //Success Message
          }
      }
  });
}

-HTML-

<form id="emailForm" target="_self" onsubmit="" action="javascript: ajax_post()">
    <input id="email" type="text" autocomplete="off" tabindex="0" name="entry.xxxxxxxxxx" required>
    <button id="send" type="submit">Submit</button>
</form>

最佳答案

“请求的资源上不存在‘Access-Control-Allow-Origin’ header ” 消息表示来自 https://docs.google.com/forms/的响应d/e/xxxx/formResponse URL 目前不包含 Access-Control-Allow-Origin 响应 header ,因此浏览器不允许您的前端 JavaScript 代码访问响应。

鉴于此,您无法通过前端代码判断 POST 请求是否成功。但除非有任何其他问题,否则请求似乎总是会成功。如果请求根本没有到达服务器(由于某些网络错误),那么您将遇到一个不同的失败条件,该失败条件可以从您的前端代码中观察到,因此您可以实际捕获它。

因此,您知道请求已成功到达服务器的方式只是您没有从前端代码中观察到任何其他故障。

关于javascript - 使用嵌入式谷歌表单绕过 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44012261/

相关文章:

javascript - node-inspector 不调试 - 它立即停止执行

javascript - 尝试使用 react-apollo-hooks 在函数中调用 useQuery

jquery - WordPress 排队脚本问题 ("$ is not defined")

jquery v1.7.1 select() 函数在 IE9 中不起作用

javascript - jQuery/jEditable 和 jQuery UI 对话框。重新填充表格单元格

javascript - HTTP POST 数据不会从 AJAX 发送到 C# MVC 5 后端

javascript - Bootstrap 日期选择器下拉菜单不下降

javascript - 获取Json信息

jquery - 如果使用 jquery ajax 创建,则 css 类不可见

javascript - HTML5 : Refresh page when popstate is fired