我正在尝试使用以下代码从外部xml获取信息。它只在我将同一文件上传到我的服务器时才有效。为什么我无法从外部网址获取信息?
<script language="javascript">
// This script uses jQuery to retrieve the news XML file and display the contents
$(document).ready(function(){
$.ajax({
type: "GET",
url: "www.simplyprofound.com/samples/xml_jquery/sample.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('item').each(function(){
var title = $(this).find('title').text();
var source = $(this).find('source').text();
var description = $(this).find('description').text();
$('<div class="news_title"></div>').html(title).appendTo('#news_wrap');
$('<div class="news_source"></div>').html(source).appendTo('#news_wrap');
$('<div class="news_description"></div>').html(description).appendTo('#news_wrap');
});
}
});
});
</script>
答案 0 :(得分:0)
将http://
放在您的网址前面,如下所示:
http://www.simplyprofound.com/samples/xml_jquery/sample.xml
否则,它会尝试在您的网站名为sample.xml
的目录中查找名为/www.simplyprofound.com/samples/xml_jquery/
的文件。
答案 1 :(得分:0)
我相信这是因为jQuery AJAX的东西使用XMLHTTPRequest(与大多数人一样),它不允许您向不属于您自己的域(作为安全功能)发出请求。
答案 2 :(得分:0)
您无法执行x-domain xhr请求。您可以使用服务器端代理,因此您可以对服务器上的页面进行ajax调用,该页面将生成远程请求并响应文件内容,或者如果端点支持json-p,则可以将dataType设置为jsonp并请求数据。