Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 谷歌不接受电子表格中的ajax吗?_Jquery_Ajax_Google Apps Script_Modal Dialog_Xmlhttprequest - Fatal编程技术网

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
使用谷歌服务器访问资源即可