我正在创建一个通知脚本,检查数据库是否有更改,然后在javascript自定义弹出窗口中返回。
我已成功制作了jquery ajax加载和处理脚本,以及php长轮询页面。 所有这一切都很有效,除了持久的请求阻止任何其他ajax加载的内容工作。我发现阻止它的方法是将其移动到不同的子域。 然而,这会导致js“同源策略”出现问题,所有这些可行的方法似乎都不能用于长连接速度,或者其他选项php代理在单独的域中击败了整个点。
有没有人有任何想法如何做到这一点,或任何帮助。
由于
奥利
答案 0 :(得分:0)
没有办法以简单的方式解决这个问题......我找到的最简单方法如下:
创建IFrame(是的,我知道),此IFrame必须加载来自子域的页面(sub.example.com/base)
主页和IFrame中加载的主页必须将document.domain设置为'.example.com',之后您才能
这也解决了你以后遇到的另一个问题,那就是浏览器在第一次长轮询结束之前一直在旋转纺车......
答案 1 :(得分:0)
你可以尝试的另一件事是填充json。你可以在一些接受GET参数的url上创建一个动态脚本,比如sub.domain.com/jsonp.php?var=value,它会返回如下内容:
var response={a:1,b:2}
您可以使用该网址动态加载<script/>
元素作为源。 jsonp中设置的变量可供其他脚本访问,不受SOP约束。