我目前正在使用 jQM 开发移动 Web 应用程序。
尽管我在寻找我的问题的答案,但我找不到任何好的答案。
这是我的目标:
- 在另一个域中下载网页的特定元素。
- 通过对话框显示数据。
由于跨域问题,我坚持第一步。
有些人写过使用带有回调函数的 JSONP,但似乎该技术仅在处理 JSON 格式时才有效。
我还读到由于安全问题,JavaScript 不支持在另一个域中下载 html 页面。
他们是对的吗?
有没有办法通过 JavaScript 实现我的目标?
我目前正在使用 jQM 开发移动 Web 应用程序。
尽管我在寻找我的问题的答案,但我找不到任何好的答案。
这是我的目标:
由于跨域问题,我坚持第一步。
有些人写过使用带有回调函数的 JSONP,但似乎该技术仅在处理 JSON 格式时才有效。
我还读到由于安全问题,JavaScript 不支持在另一个域中下载 html 页面。
他们是对的吗?
有没有办法通过 JavaScript 实现我的目标?
这个问题有很多解决方法(JSONP、反向代理、'Access-Control-Allow-Origin'等),在一个非常广泛的线程中描述了 SO: 绕过同源策略的方法
最好的方法是使用本地代理。换句话说:在脚本 X 中执行请求服务器端,并从您的 javascript 调用此脚本 X。这样,您的“跨域”查询就会从服务器发生,并且对此没有任何限制。
这有两种可能。
首先,只有在外部服务器设置了 cors 标头时:http://enable-cors.org/server_apache.html。然后就可以正常加载了。如果未设置该标头,则无法直接进行。
其次,您可以将服务器端用作代理。这仅在您对静态资源执行 GET 请求时才真正有用。否则服务器上的负载会非常高。如果您没有要使用的服务器,则可以使用 YQL,但这对于生产用途来说是粗略的。http://davescoolblog.blogspot.com/2012/02/client-side-cross-domain-data-yql-hack.html