假设您正在尝试执行 jquery ajax 请求,例如:
$.ajax({
...
url: http://other-website.com
...
})
据我了解,由于同源原则,这个请求会失败,因为URL是外部域。
不过我听说过GetJSON()
不遵守此原则,可以使用 JSONP 和附加 URL 向外部服务器发送异步 get 请求。
我的问题是:是否可以使用GetJSON()
将外部名称中的所有 HTML 作为 JSON 对象中的单个字符串检索?如果默认情况下它不这样做,有什么方法可以强制/欺骗它这样做吗?
是的,您可以从远程位置请求 html,但是您必须使用代理才能执行此操作。 YQL 是一种公开可用的代理。
http://jsfiddle.net/BKJWu/ http://jsfiddle.net/BKJWu/
var query = 'SELECT * FROM html WHERE url="http://mattgemmell.com/2008/12/08/what-have-you-tried/" and xpath="//h1" and class="entry-title"';
var url = "http://query.yahooapis.com/v1/public/yql?q=" + query + "&format=json&callback=??";
$.getJSON(url,function(data){
alert(data.query.results.h1.content);
})
当然,您可以在服务器上构建自己的服务器,返回纯 html 而不是 json。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)