CROSS-DOMAIN - 检索页面源

时间:2011-09-30 06:15:43

标签: javascript jquery ajax

您好,我在这里有一个项目,我们需要来自另一个域的特定值,我无权更改(所以我不能做嵌套的iframe或CORS)。我们需要保持Session / Cookie状态相同,以便在令牌根据页面上的用户更改时从页面获取所需数据。所以服务器端解决方案不起作用。

最好的解决方法是,以下是页面源的全部内容。 我需要检索FF321332值

{"<!--":"","token":"FF321332","expire":1317448445,"":"--><body onload=document.body.innerHTML=clear>"}
到目前为止我尝试过的一些东西是动态脚本标签“它抛出一个JS错误意外的令牌:错误,Jquery(.getScript)这会引发同样的错误,任何其他形式的.get或xhr都会抛出一个跨域错误。

我觉得我使用.getScript或动态脚本标签走在正确的轨道上,因为它几乎想要读取它。但是如果我可以解决意外的令牌错误并且只是将其作为文本读取(如果这是我可以将变量解析为普通文本。

对此的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

JSONP允许您执行您要执行的操作。查看jQuery文档,了解如何使.get使用JSONP来支持浏览器跨域强制执行。

基本上,当你执行$ .getJSON时,如果url有一个单词“callback =”+ what,那么它会把它当作jsonp而不是标准的getjson。

祝你好运。

答案 1 :(得分:0)

不要认为你可以使用脚本标记来解决错误,因为通常,一旦src属性中指定的“javascript”被下载,它也会被执行。您说您不能使用服务器端解决方案,因为您需要保留状态?

你可以用卷发和饼干罐来做到这一点。从来没有尝试过这个,但理论上它应该工作: 基本上你需要做的就是设置一个curl请求到远程域接受cookie并将它们存储在一个文件(cookie jar)中,然后再做一个请求来获取传递之前获得的cookie的页面。

试一试,也许它会起作用。