html表单没有将数据传输到谷歌电子表格

时间:2017-12-21 17:49:38

标签: javascript jquery html excel forms

您好我一直在关注本教程submit data from html forms to google sheets ajax代码如下:

var $form = $('form#test-form'),
  url = 

' https://script.google.com/macros/s/AKfycbwoNkRscUxkp7bOdHx3pPwj4D2doLATbgqEYKOoaIRFXCdRPlM/exec'

$('#submit-form').on('click', function(e) {
  e.preventDefault();
  var jqxhr = $.ajax({
  url: url,
  method: "GET",
  dataType: "json",
  data: $form.serializeObject()
  }).success(
// do something
    );
  })

我遇到的问题是数据没有转移到谷歌电子表格。下面是html代码。

<form id="test-form">

<div>
  <label>Field 1</label>
  <input type="text" name="Groceries" placeholder="Field 1"/>
 </div>

 <div>
   <label>Field 2</label>
   <input type="text" name="Diary" placeholder="Field 2"/>
 </div>

  <div>
    <label>Field 3</label>
    <input type="text" name="Meat" placeholder="Field 3"/>
  </div>

<div>
  <label>Field 4</label>
  <input type="text" name="Fish" placeholder="Field 4"/>
</div>

<div>
  <button type="submit"id="submit-form">Submit</button>
</div>

2 个答案:

答案 0 :(得分:1)

您是否在控制台中收到CORS错误?

  

已被CORS政策阻止:No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。

如果是这样,我通过更改“json”中的数据类型来实现它。到了#jsonp&#39;。此外,AJAX请求的成功部分应该在对象内部。

$('#submit-form').on('click', function(e) {
  e.preventDefault();
  var jqxhr = $.ajax({
    url: url,
    method: "GET",
    dataType: "jsonp",
    data: $form.serializeObject(),
    success: function() {
      console.log('it worked')
    }
  })
})

答案 1 :(得分:0)

不幸的是,当我单击提交按钮时没有工作错误没有加载脚本在&#39; https://script.google.com/macros/s/AKfycbwoNkRscUxkp7bOdHx3 pPwj4D2doLATbgqEYKOo aIRFXCdRPlM / exec?cal lback = jQuery31106050 297388535439_1513880 634404&amp; ;杂货= 100安培;日记= 100安培;肉类= 100安培;鱼= 100安培; _ = 151388063 4405&#39;因为当&#39; X-Content-Type:nosniff&#39;时,不允许使用非脚本MIME类型。给出了

上述问题可以通过在doget function中添加以下代码来解决 -

function doGet(e) {

  // do whatever this webapp is for
  var result = doSomething(e); 
  // prepare the result
  var s = JSON.stringify(result);
  // publish result
  return ContentService
    .createTextOutput(result.params.callback ? result.params.callback + "(" + s + ")" : s )
    .setMimeType(result.params.callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON); 
}