我正在尝试通过嵌入式表单向 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/