php - 如何解决 Google 日历的链接重定向通知?

标签 php javascript ajax xss google-calendar-api

我在网页上嵌入了一个 Google 日历,其中包含与网站正在组织的事件相关的事件。某些日历事件具有将用户重定向到同一网站内的页面的链接,该页面包含更多信息以及注册事件的选项。

但问题是,自上个月底以来,Google 强加了重定向通知,甚至不会自动重定向。我在事件上创建的链接会被 Google 更改,一旦用户单击链接,就会打开一个新选项卡,指向一个带有用户必须单击的重定向警告的页面。由于我向用户提供了同一网站内的链接,因此非常不方便且毫无意义。

我希望用户能够单击日历上的链接并进入包含相关数据的网页。

你们知道我该如何绕过这个警告吗?

我的思考过程:

  1. 最初,我想过使用 JS 重写链接,但由于日历的 iframe 位于不同的域中,浏览器因 XSS 漏洞而不允许这样做(据我所知)。

  2. 我可以构建自己的 AJAX 日历并使用 API 将其与 Google 同步,但由于愚蠢的“功能”没有任何意义,这是一项艰巨的工作。我喜欢 Google 日历,并且想使用它。

  3. 我想到的第三件事是,我可以使用 AJAX 来获取框架 url 上的整个代码,而不是使用带有日历的 iframe。然后我就用 JS 重写该代码上的链接。这可行吗?

如果有任何帮助,我将非常感激。这让我发疯!

<小时/>

使用 Jon Cram 的输入,我创建了一个 php 脚本来解析代码并进行调整。但是我只能让它适用于 html 版本。我没有 AJAX。 =(

最佳答案

同源策略将阻止您的域提供的 JavaScript 与其他域提供的数据交互。

因此,您说选项 1 行不通,这是正确的。

正如您所述,同源政策也适用于选项 3。从您的域提供的 JavaScript 将无法向提供日历代码的域发出直接 HTTP 请求。

您将需要获取和修改日历代码,而这两者都无法通过当今最常用的浏览器的 JavaScript 来实现。当 FireFox 3.1 和 IE8 通用时并且 Google 提供正确的 HTTP 访问控制 header ,这可以单独使用 JavaScript 来实现。

要修改从另一个域提供的代码,您将需要利用某种形式的服务器端进程。

服务器端脚本将能够请求日历代码。然后,同一脚本可以根据需要修改代码并以您需要的任何形式输出。

关于php - 如何解决 Google 日历的链接重定向通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/540496/

相关文章:

php - 将带有超链接的 html 表中的值传递到下一页的数据库查询

php - 为什么Laravel返回数组不能使用empty()但可以使用count()

php - fatal error 导致没有结果出现(Mysqli)

javascript - 从嵌套数组创建 HTML 元素

javascript - 如何在jquery中通过图像上传发送文本输入值

javascript - 为什么我的 div 没有慢慢隐藏?

javascript - 如何将选项添加到 knockout js选项中的第一个?

javascript - 在任何 AJAX 调用之前触发 javascript 函数

php - 使用 ajax 和 php 时的用户身份验证和重定向

javascript - 无法将ajax传递给 Controller ​​功能