【发布时间】:2016-03-05 12:16:38
【问题描述】:
我通过 ajax 从 html 向谷歌表单发送数据 我已经设置了一个 Google 表单,当我通过直接链接使用它时它工作正常。 但是当我尝试从网络发送数据时,它会抛出错误。 这是脚本:
<script type="text/javascript">
function postContactToGoogle() {
$j = jQuery.noConflict();
var name = $j('#name').val();
var email = $j('#email').val();
var feed = $j('#feed').val();
if ((name !== "") && (email !== "")
&& (feed !== "") ) {
$j.ajax({
url : "http://goo.gl/forms/IZkhiFRINx",
data : {
"entry.1" : name,
"entry.3" : email,
"entry.4" : feed
},
type : "POST",
dataType : "xml",
statusCode : {
0 : function() {
$j('#name').val("");
$j('#email').val("");
$j('#feed').val("");
//Success message
},
200 : function() {
$j('#name').val("");
$j('#email').val("");
$j('#feed').val("");
//Success Message
}
}
});
} else {
//Error message
console.log('error');
}
}
</script>
这是标记::
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<form id="callus" target="_self" onsubmit=""
action="javascript: postContactToGoogle()">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Gift Card</h4>
</div>
<div class="modal-body">
<fieldset>
<label for="name">What's your name? *</label> <input id="name"
type="text" name="name">
</fieldset>
<fieldset>
<label for="email">What's your email? *</label> <input id="email"
type="text" name="email">
</fieldset>
<fieldset>
<label for="feed">Questions or Feedback?*</label>
<textarea id="feed" name="feed"></textarea>
</fieldset>
<div style="text-align: right; padding-bottom: 15px;">*
Required</div>
<div
style="width: 100%; display: block; float: right; padding-top: 15px;">
<div class="requestSubmited"
style="display: none; text-align: center;">Your request has
been sent!</div>
</div>
</div>
<div class="modal-footer">
<button type="submit" value="submit">submit!!</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</form>
</div>
</div>
</div>
这是我得到的错误::
XMLHttpRequest cannot load http://goo.gl/forms/IZkhiFRINx. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 405
【问题讨论】:
-
首先确定谷歌是否允许您将数据发布到该表单。另请阅读 CSRF 攻击
-
你在使用 chrome 吗?
-
是的,我正在使用 chrome
-
你用其他浏览器试过了吗?
-
@MayurPatel 在 mozill 中尝试得到此错误:跨域请求被阻止:同源策略不允许读取位于 goo.gl/forms/IZkhiFRINx 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)
标签: javascript jquery html css ajax