我正在尝试使用Google Calendar API构建Chrome扩展程序。我试图避免设置服务器只是为了对Google日历进行API调用。我试着按照这里的例子:
https://developers.google.com/google-apps/calendar/quickstart/js#step_2_set_up_the_sample
但是该代码要求我运行HTTP Server。为什么该代码仅在我在HTTP服务器上运行时才有效?从我所看到的,它唯一的JavaScript和HTML,当我在浏览器本地运行它时(使用file://协议)应该可以工作。我也没有看到任何CORS问题。
我可能只是设置一个Heroku服务器,但我试图理解为什么这个看似客户端的代码需要运行服务器!
答案 0 :(得分:1)
某些浏览器会阻止从file://
网址加载的网页中的Javascript出于安全原因而执行某些操作,例如进行ajax调用。
因此,由于此代码最终会向日历服务器发出一些Ajax调用,因此代码可能希望确保您的网页不受这些安全限制的限制,因此它建议可以加载网页的方式从本地Web服务器而不是文件系统,因此它不会对加载file://
URL的页面施加任何限制。
值得一提的是,适用于SET @kisaranmirip=maxdifference;
SET @current_id=tmid;
SET @cari=caritext;
SET @ret=(SELECT indonesian
FROM tm
WHERE
tm_id<tmid
ORDER BY damlevlim(@cari, english,maxdifference)
LIMIT 1);
UPDATE babel.tm
SET indonesian=@ret
WHERE tm_id=tmid
网址的安全限制是特定于浏览器的(每个浏览器都可以自行选择限制内容)。 Chrome在这方面似乎相当严格(尽管我认为有一个命令行参数可以放松这些限制)。