【问题标题】:how do I send 'put' request through javaScript & Ajax?如何通过 javaScript 和 Ajax 发送“放置”请求?
【发布时间】:2011-01-12 10:16:17
【问题描述】:

我必须以编程方式写入我的电子表格。它允许我写入电子表格的特定单元格。我的代码是:

function update(){
                jQuery.ajax({
                    type: 'PUT',
                    contentType: "application/atom+xml",
                    url: "https://spreadsheets.google.com/feeds/cells/0Aq69FHX3TV4ndDBDVFFETUFhamc5S25rdkNoRkd4WXc/od6/private/full/R2C1",
                    dataType: "xml",
                    data: "new.xml",
                    success: function() {
                        alert('Put Success');
                    },
                    error: function(a,b,c) {
                        console.log("XMLHttpRequest: " + a);
                        console.log("textStatus: " + b);
                        console.log("errorThrown: " + c);
                        alert("XMLHttpRequest : " + a + " textStatus : " + b + " errorThrown : " + c);
                    }
                });
            }

我只能使用 xml 元素写入电子表格。所以,我创建了(new.xml):

<entry>
    <id>https://spreadsheets.google.com/feeds/cells/0Aq69FHX3TV4ndDBDVFFETUFhamc5S25rdkNoRkd4WXc/od6/private/full/R2C1</id>
    <link rel="edit" type="application/atom+xml"
    href="https://spreadsheets.google.com/feeds/cells/0Aq69FHX3TV4ndDBDVFFETUFhamc5S25rdkNoRkd4WXc/worksheetId/private/full/R2C1"/>
    <gs:cell row="2" col="1" inputValue="300"/>
</entry>

但是,我的代码仍然抛出错误。我认为这与我正在编写的 XML 文件有关。我认为,创建 new.xml 是我的错误。请建议如何写回?如何创建 xml 元素?

供参考:Update Cells

输出: A : [对象对象]

b: 未定义

c:

【问题讨论】:

  • 如果您告诉我们错误是什么可能会有所帮助!但是,我怀疑问题在于您试图 PUT 一个由文件名而不是 XML 组成的字符串(即 data: 'new.xml' 应该是 data: '&lt;entry&gt;&lt;id&gt;etc etc
  • data : ' ...' 不是正确的字符串并给出错误。让我添加上一个案例中的错误。

标签: javascript jquery xml ajax google-sheets


【解决方案1】:

由于same origin policy restriction,您无法跨域发送 AJAX 请求。在这里,您尝试向 https://spreadsheets.google.com 发送 AJAX 请求,除非您的网站托管在 https://google.com 上,否则这将不起作用。要尝试解决此限制,您可以在您的服务器上编写一个服务器脚本,该脚本将充当您的域和 google.com 之间的桥梁。然后您可以将 AJAX 请求发送到将委托的脚本。

【讨论】:

  • 但它在 Google 文档中给出!它不在我的网站上。我使用 Gmail 访问的只是 Google Doc。还有什么其他的方法/解决方案?
  • @Sarang,您能指出此代码在文档中的位置吗?
  • 我不是说代码,据说是这样的……看看输出吧!
  • @Sarang,是的,但您不能跨域发送 AJAX 请求,这是出于安全原因。浏览器根本不会让你这样做。
  • 好的,明白了!好吧,我正在开发 iGoogle 小工具。我必须只使用 JavaScript! :( 任何解决方案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
  • 2011-04-14
  • 2017-02-06
  • 2013-10-31
  • 2010-09-22
相关资源
最近更新 更多