问候, 如何使用ajax和jquery下载一些页面内容: 我正在做类似的事情(一个脚本中有两个版本):
$("p").click(function() {
$('#result').load('http://google.com');
$.ajax({
url='www.google.com',
success: function(data) {
$("result").html(data);
alert('Load was performed.');
var url = 'www.wp.pl';
$('div#result').load(url);
//var content = $.load(url);
//alert(content);
//$("#result").html("test");
}
});
});
但它不会返回任何内容
答案 0 :(得分:7)
Due to restrictions您无法使用与托管此脚本的域托管在同一域中的AJAX下载网页内容。您的.ajax
函数调用中也存在语法错误。它应该是这样的:
$.ajax({
url: 'http://yourdomain.com/page1.htm',
success: function(data) {
$("result").html(data);
alert('Load was performed.');
var url = 'http://yourdomain.com/page2.htm';
$('div#result').load(url);
}
});
答案 1 :(得分:7)
您可以使用YQL来代理您的通话:
$.ajax({
url:"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D'http://www.google.com'&format=xml&callback=callback",
type: 'GET',
dataType: 'jsonp'
});
function callback(data){
$('#result').html(data.results[0]);
}
答案 2 :(得分:2)
虽然无法从Javascript直接查询当前域外部的主机,但您可以使用代理脚本来检索所需的数据。
使用jQuery进行跨域AJAX查询:http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html
您还可以使用flXHR脚本,该脚本可以放入许多Javascript库(包括jQuery)中。
答案 3 :(得分:1)
你也可以简单地调用一个PHP / ASP / RUby页面来反过来为你做外部调用,并以你需要的方式呈现信息。
1. PAGE --> PHP --> External web
(Ajax)
2. PAGE <-- PHP <-- External web
(callback)
答案 4 :(得分:1)
您需要使用名为JSONP的内容来跨域。 Seider已经发布了有关如何使用jQuery执行此操作的更多详细信息。