Jquery 谷歌不接受电子表格中的ajax吗?
我尝试使用Jquery 谷歌不接受电子表格中的ajax吗?,jquery,ajax,google-apps-script,modal-dialog,xmlhttprequest,Jquery,Ajax,Google Apps Script,Modal Dialog,Xmlhttprequest,我尝试使用JQuery.get和XmlHttpRequest获取数据,但它们似乎都失败了 我试图在电子表格中创建的模式对话框中实现这一点 在尝试之前,是否有任何错误或程序我必须执行 详情: 1-模态对话框正在工作(我在ajax代码之前放置的消息显示良好,在.get之后的消息也显示良好。 2-我知道谷歌UrlFetch在服务器端,但我现在只对客户端感兴趣 代码: 1-Jquery获取: alert("test"); $.get("http://www.w3schools.com/jquery
JQuery.get
和XmlHttpRequest
获取数据,但它们似乎都失败了
我试图在电子表格中创建的模式对话框中实现这一点
在尝试之前,是否有任何错误或程序我必须执行
详情: 1-模态对话框正在工作(我在ajax代码之前放置的消息显示良好,在
.get
之后的消息也显示良好。2-我知道谷歌
UrlFetch
在服务器端,但我现在只对客户端感兴趣
代码: 1-Jquery获取:
alert("test");
$.get("http://www.w3schools.com/jquery/demo_test.asp", function(data,status){
alert(status + " /// " + data); //never shown
});
alert("after get"); //shown
2-HttpRequest:
var Req = new XMLHttpRequest();
var URL2 = "http://www.w3schools.com/ajax/ajax_info.txt";
Req.open('GET', URL2, false);
alert("Got2");
Req.send();
alert("sent2"); //never shown
alert(Req.responseText); //never shown
我假设您正在模态对话框中使用自定义HTML代码 据我所知,您的Javascript代码没有问题,但是您的XMLHttpRequest(以及JQuery.get,因为它内部依赖于XMLHttpRequest)由于权限问题而失败。您可以在浏览器的开发人员控制台中看到错误 首先,Google电子表格是使用HTTPS加载的,并且(至少对于我测试的Chrome来说)不允许通过XMLHttpRequest从HTTPS页面加载不安全的HTTP资源(其思想是,如果端点不安全,则无法保证通过XMLHttpRequest获得的数据不是恶意攻击者插入的数据,而是实际数据) 第二,默认情况下,XMLHttpRequest仅限制您访问同一个域。这意味着您只能访问加载脚本代码的域
[一些随机字符串].googleusercontent.com
上的资源。若要对另一个域执行XMLHttpRequest(称为跨源XMLHttpRequest)提供资源的服务器必须发送特殊的HTTP头,表明该服务器允许这种跨源访问。此处的详细信息:。因此,除非w3schools服务器发送正确的头,否则无法在这些URL上使用XMLHttpRequest
因此,如果您想访问该资源,可能需要确保通过HTTPS提供服务并发送正确的标头。正确执行上述两项操作的资源示例是。例如,使用以下URL将起作用:
https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D'http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FYahoo'%20and%20xpath%3D'%2F%2Ftable%2F*%5Bcontains(.%2C%22Founder%22)%5D%2F%2Fa'&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys
或者,只需通过UrlFetch
使用谷歌服务器访问资源即可