我在这里看到类似的问题,但我没有找到任何关于Javascript的答案。
我正在建立一个网站(我们称之为'A'),我想从另一个需要用户名和密码的网站('B')获取内容。 我想在我的网站上获取一个功能,从B处的某个页面获取内容。我总是在我的计算机上手动登录到站点B,所以我不需要该功能来登录(所以我将它直接链接到正确的B)信息页面。 A和B不在同一个域中。 Javascript中有没有办法从B获取内容?
答案 0 :(得分:5)
你需要一个跨doman AJAX调用(通常由same origin policy阻止)。 jQuery有一个方便的辅助函数,它将返回名为$.getJson()
$.getJSON('http://otherdomain/ajax/test.json', function(data) {
if (undefined != data) {
console.log(data);
}
});
这利用了一种称为JSONP的技术,它将Javascript直接写入文档以发出请求(而不是使用XMLHttpRequest
对象),绕过相同的原始策略。
答案 1 :(得分:2)
我喜欢做的是使用YQL(Yahoo Query Language)
这就像是api的api。我使用选择器得到了我想要的任何html并处理它。
例如,我可以使用类似的查询从this wikipedia link获取所有图像
SELECT * FROM html WHERE url="http://en.wikipedia.org/wiki/List_of_United_States_National_Parks_by_state" AND xpath="//img"
然后处理返回的XML / JSON
您可以测试查询HERE
并查看抓取和处理图片in this Fiddle
的示例答案 2 :(得分:0)
没有办法使用纯B
从外部javascript
页面获取内容,但您可以尝试使用php curl
或file_get_contents