关于jQuery ajax返回的data为整个html字符串?
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/l...
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>loading</title>
<script type="text/javascript" src="../jqueryEasyUI/jquery-1.7.2.min.js"></script>
</head>
<body>
<input type="button" id="send" value="Ajax获取" />
<div id="resText"></div>
<script type="text/javascript"><!--
$(document).ready(function(){
$("#send").click(function(){
$("body").load("ajax+json+scroll.html",function(data){alert(data)});
});
});
// --></script>
</body>
</html>
这个是loading界面,想通过点击按钮以后加载另一个页面如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
*{ padding:0; margin:0; font:Arial, Helvetica, sans-serif; font-size:12px}
</style>
</head>
<body>
<div class="comment">
已有评论:
</div>
<div class="comment">
<h6>张三:</h6>
<p class="para">沙发。</p>
</div>
<div class="comment">
<h6>李四:</h6>
<p class="para">板凳。</p>
</div>
<div class="comment">
<h6>王五:</h6>
<p class="para">地板。</p>
</div>
</body>
</html>
返回的data数据是这个:
整个html都返回来了,我现在将其插入到前一个页面中,用firebug查看,单纯看页面没什么,很正常,但是用firebug看的时候发现这个:
在body中出现了style和其他头部信息,这是个小实验,希望高人可以告诉我一下怎样让返回的数据不包含头部的内容,我试着在url后面加选择器,但是无济于事,还是返回所有的。提出这个疑问主要是我们jsp中这个:
$.ajax({
async:true,
type:'POST',
cache:false,
url:'task.do?method=projectGantt ',//这里的url加选择器也没有用,该怎么办?
data:{'projectId':projectId,'showType':showType},
beforeSend:function(){
var loadingLayer='<div id="loadingLayer" style="position:absolute;width:120px;height:60px;border:#5F9DE8 2px solid;margin:-30px -60px -30px -60px;z-index:4000;left:50%;top:50%;text-align:center;color:#333;font-weight:bold;background:#FFFFFF"><img src="static/images/ajax_loading.gif" border="0" /><div>正在加载...</div></div>';
$('body').append(loadingLayer);
},
success:function(data,textStatus){
$('#loadingLayer').remove();
$('body').html(data)
},
complete:function(data,textStatus){
$('#loadingLayer').remove();
},
error:function(){
}
})
} 展开
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>loading</title>
<script type="text/javascript" src="../jqueryEasyUI/jquery-1.7.2.min.js"></script>
</head>
<body>
<input type="button" id="send" value="Ajax获取" />
<div id="resText"></div>
<script type="text/javascript"><!--
$(document).ready(function(){
$("#send").click(function(){
$("body").load("ajax+json+scroll.html",function(data){alert(data)});
});
});
// --></script>
</body>
</html>
这个是loading界面,想通过点击按钮以后加载另一个页面如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
*{ padding:0; margin:0; font:Arial, Helvetica, sans-serif; font-size:12px}
</style>
</head>
<body>
<div class="comment">
已有评论:
</div>
<div class="comment">
<h6>张三:</h6>
<p class="para">沙发。</p>
</div>
<div class="comment">
<h6>李四:</h6>
<p class="para">板凳。</p>
</div>
<div class="comment">
<h6>王五:</h6>
<p class="para">地板。</p>
</div>
</body>
</html>
返回的data数据是这个:
整个html都返回来了,我现在将其插入到前一个页面中,用firebug查看,单纯看页面没什么,很正常,但是用firebug看的时候发现这个:
在body中出现了style和其他头部信息,这是个小实验,希望高人可以告诉我一下怎样让返回的数据不包含头部的内容,我试着在url后面加选择器,但是无济于事,还是返回所有的。提出这个疑问主要是我们jsp中这个:
$.ajax({
async:true,
type:'POST',
cache:false,
url:'task.do?method=projectGantt ',//这里的url加选择器也没有用,该怎么办?
data:{'projectId':projectId,'showType':showType},
beforeSend:function(){
var loadingLayer='<div id="loadingLayer" style="position:absolute;width:120px;height:60px;border:#5F9DE8 2px solid;margin:-30px -60px -30px -60px;z-index:4000;left:50%;top:50%;text-align:center;color:#333;font-weight:bold;background:#FFFFFF"><img src="static/images/ajax_loading.gif" border="0" /><div>正在加载...</div></div>';
$('body').append(loadingLayer);
},
success:function(data,textStatus){
$('#loadingLayer').remove();
$('body').html(data)
},
complete:function(data,textStatus){
$('#loadingLayer').remove();
},
error:function(){
}
})
} 展开
1个回答
展开全部
你到底要问什么,我看了5秒钟就没耐心看下去了,简明扼要下
.load()肯定返回html,
而 $.ajax()太低水平(但愿你懂), 基本上都不推荐用,非要用的话最好指定完全的参数
关于你想要什么类型就在dataType里设,但是服务端要返回相关类型哦,要不然会得不到数据哦
$.ajax({
type:'POST',
url:url,
data:data,
success:success,
dataType:dataType
});
推荐你用$.get(),$.post()那些吧
.load()肯定返回html,
而 $.ajax()太低水平(但愿你懂), 基本上都不推荐用,非要用的话最好指定完全的参数
关于你想要什么类型就在dataType里设,但是服务端要返回相关类型哦,要不然会得不到数据哦
$.ajax({
type:'POST',
url:url,
data:data,
success:success,
dataType:dataType
});
推荐你用$.get(),$.post()那些吧
追问
追答
如果你直接取另一个页面的内容,而另外一个也面有head的话,肯定会带head的内容,唯一的方法是取回来后在回调里处理取回来的内容吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询