我目前正在使用jQM开发移动Web应用程序。
虽然我找到了问题的答案,但我找不到任何好的答案。
这是我的目标:
由于跨域问题,我陷入了第一步。
有些人写道如何使用带有回调函数的JSONP,但似乎该技术仅在处理JSON格式时有效。
我还读到,由于安全问题,JavaScript不支持在另一个域中下载html页面。
他们是对的吗?
没有办法通过JavaScript实现我的目标?
答案 0 :(得分:10)
这个问题有很多解决方法(JSONP,反向代理,'Access-Control-Allow-Origin'等),在SO上的一个非常广泛的线程中描述: Ways to circumvent the same-origin policy
答案 1 :(得分:5)
执行此操作的最佳方法是使用本地代理。换句话说:在脚本X中执行请求服务器端,并从您的javascript调用此脚本X.这样,您的“跨域”查询就会从服务器发生,并且没有限制。
答案 2 :(得分:4)
这有两种方式。
首先,仅当外部服务器设置了cors标头时:http://enable-cors.org/server_apache.html。然后你可以正常加载它。如果未设置该标头,则无法直接设置。
其次,您可以将服务器端用作代理。这在您在静态资源上执行GET请求时非常有用。否则,服务器上的负载将非常高。如果您没有要使用的服务器,则可以使用YQL,但这对于生产使用来说是粗略的。 http://davescoolblog.blogspot.com/2012/02/client-side-cross-domain-data-yql-hack.html
答案 3 :(得分:2)
JSONP允许任何Javascript对象的跨源共享。字符串是一个Javascript对象,在您的情况下,您可以提供元素的标记以包含为字符串,并使用标准的Javascript技术来处理它。
如果您愿意,还可以使用Cross-origin resource sharing,它受支持程度较低,但不会导致minor JSONP性能下降(尽管它有其他性能缺陷,例如需要多次请求非所得到的)。