【发布时间】:2011-12-15 17:03:55
【问题描述】:
好的,问题来了:
远程站点需要从其他域中提取复杂的 html 页面内容。 iframe解决方案不够好,因为确定页面高度的问题,IE浏览器不允许跨域ajax。有 JSONP,但需要提供的代码量太复杂,我们还需要提供一些功能。
解决办法:
在服务器端,我们动态生成包含字符串变量中所有复杂 html 内容的 javascript。在远程端,我们只包含对这个脚本的调用,然后我们在页面上放了一个。然后用来自服务变量的内容填充 Div。它可以在所有浏览器上跨域工作,并且内容显示完美:))。
问题:
这种方法有什么问题?为什么网上的任何地方都没有提到这种解决方案?它似乎非常适合为任何类型的小部件和类似内容提供服务,现在我担心其中存在一些重大谬误:)?
请揭穿它:)
【问题讨论】:
-
它本质上只是一个自制的 JSONP 版本。
-
嗯,是的。但是通过这种方式,来自远程服务器的整个 html 页面可以与所有 javascript 功能一起提供。我们无法使用 jsonp 实现这一点。
-
"... IE 浏览器不允许跨域 Ajax。" - 好吧,至少其他浏览器允许您这样做.. 哦,等等,他们不要。
-
嗯,使用 JSONP 可能有些复杂,但我的意思是它利用了与 JSONP 相同的浏览器功能。
-
他们使用 json 和 jsonp,但您甚至可以通过在响应标头中设置 Access-Control-Allow-Origin = * 来提供 html。
标签: javascript ajax cross-domain