这是我从服务器检索2行htlm页面的ajax代码...
$.ajax({
type: 'GET',
url: 'http://sc3.******/7.html',
success: function(data) {
var result1 = $( '<html />' ).html(data);
var result2 = $( result1 ).filter( '#body' );
$('#resultSpan').text(result1) ;
alert( result1 ); // no alert at all here
},
error: function(jqXHR, textStatus, errorThrown) {
alert( 'jqXHR :' + jqXHR);
$( '#resultSpan' ).text( 'Error: ' + jqXHR ) ;
}
});
这个页面非常简单
<HTML>
<meta http-equiv="Pragma" content="no-cache"></head>
<body>6,1,22,50,5,128,Jason Mraz - I'm Yours</body></html>
我想阅读该部分并将其传递给div ... 我尝试了几种方法,并尝试从stackoverflow中提取一些建议,但我认为它很有用......
我总是收到错误警告,并且没有针对result1 var的警告,而且resultSpan没有从html页面的正文中获取文本
答案 0 :(得分:1)
您的问题称为跨域请求。 JavaScript无权从其他域加载内容。
以下是一些信息:Cross domain ajax request
建议,开发一些服务器页面,对该资源执行Web请求, 并返回如下内容:
$.ajax({url: 'mypage.php?resource=http://server.com/page.html' ... });
我认为这种技术称为Web代理,可以帮助您克服安全性 限制javascript执行您尝试执行的操作的政策。
如果您可以使用PHP,可以在mypage.php中编写类似的内容:
<?php
echo file_get_contents($_GET['resource']); //resource is the query string param.
?>
这是一个简单的服务器页面,它接收查询字符串参数“url”并返回 结果还给你。
因为您可以调用域名的本地页面,所以您不会遇到Ajax交叉请求问题。
答案 1 :(得分:0)
如果您收到错误警报,则ajax请求失败。确保您的ajax页面确实存在并且正在通过直接转到它来工作。另外,请确保设置数据类型,如果您只是获取文本,请使用
$.ajax({
type: 'GET',
url: 'http://sc3.******/7.html',
dataType: "text" .....
如果您仍然遇到麻烦,请在您直接浏览到该ajax页面时发布输出http://sc3.******/7.html