我想提取由其他网站托管的网页的源代码,但问题是O得到一个空的回复,我试图拉出多个网站的来源,但问题来自我的代码:
$(document).ready(function(){
$.get('http://www.xxxx.com', function(xdata) {
alert("content: "+xdata);
});
});
有任何错误吗?
注意:当我尝试获取本地页面的来源时,它可以工作,但我不知道为什么它不适用于外部页面
由于
答案 0 :(得分:1)
解决此问题的唯一方法是使用一些服务器端数据,然后使用您的AJAX请求处理,这称为Cross-Domain Proxy。
答案 1 :(得分:0)
您无法跨域使用AJAX
答案 2 :(得分:0)
请查看JsonP。
答案 3 :(得分:0)
Access-Control-Allow-Origin: *标头需要在外部网站上设置以进行跨域访问。
答案 4 :(得分:0)
由于SOP(原始政策相同),您无法使用其他域中的网址。尝试从本地服务器访问页面,不要使用http。
答案 5 :(得分:0)
如果您对构建自己的代理不感兴趣,可以使用JavaScript库,使用非常易于使用的公共代理(托管在AppEngine上)。 CurlJS:http://curljs.azoffdesign.com/
您的示例可以像这样完成(包括库之后):
curl("http://www.xxxx.com", function (status, xdata) {
alert("content:" + xdata);
});
希望有所帮助!
答案 6 :(得分:0)
我有一台使用虚拟域的服务器并创建了一个apache代理。
超级快,有效,没有怪癖。
复制,修复路径(mod_proxy,域等等),添加到.conf文件,重启服务器
LoadModule proxy_module /usr/local/zend/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/local/zend/apache2/modules/mod_proxy_http.so
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /datadomain http://datadomain.com/webservices
ProxyPassReverse /datadomain http://datadomain.com/webservices
现在http://datadomain.com/webservices/data.php = http://yourdomain.com/datadomain/data.php
享受!!!