绕过AJAX同源策略 - 一个特例

时间:2010-12-20 16:16:34

标签: php ajax same-origin-policy

当我尝试使用Ajax / JQuery动态刷新页面内容时,我已经了解了S-O-P问题和限制,但我想知道是否有办法解决我的小问题。

为了便于理解,我将首先解释工作流程。

我确实通过电子邮件接收网页,即HTML电子邮件。网页以这种方式包含HTML表单,一旦表单完成,它就会被发送到适当的Web服务器(php)来存储数据。

我主要使用Outlook 2007作为我的电子邮件客户端(这里没有说什么,我知道!!!)但是出于某些安全限制,IFRAMES在“打开”电子邮件时被禁用。我使用VBA脚本来绕过这个问题,该脚本复制整个页面内容,将其作为独立的网页保存在文件系统中并加载到浏览器中(Firefox)。

将页面加载到浏览器后,地址栏会显示本地/文件系统URL,例如

file:///C:/Users/Bob/Desktop/outlookpage.htm

直到这里没问题,工作正常;现在问题是:

我希望使用Ajax动态更新页面内容,使用jQuery.load,但这就是SOP的用武之地。加载动态更新网页的PHP页面被视为在另一个域上运行,因此被阻止

我想知道如何规避这一点。

1 个答案:

答案 0 :(得分:1)

这不起作用,因为为了绕过相同的原始策略,您需要在同一个域上使用代理,然后该代理将与处理不同域上的数据的页面进行通信。没有办法在另一个用户的计算机上生成代理脚本(或者至少,不应该是一种方式)。我要么只是正常发布表单,这将打开用户的默认浏览器,或提供电子邮件中的在线表单的链接。无论如何,如果他们的电子邮件客户端不支持HTML电子邮件,则应提供该链接。

相关问题