为什么jquery ajax 返回的是整个页面的html

有点不解的是,有的地方这么使用就好好的,有的时候呢用就返回整个页面,参数设置都一样啊?神奇。

前台js:
function test() {
$.ajax({
type: 'POST',
url: 'isNumStr.aspx/GoldenRuleVerify',
async: false,
dataType: 'html',
data: { "isGoldenRuleVerify": 1 },
success: function (msg) {
alert(msg);
}
});
}

后台:
[WebMethod]
public static string GoldenRuleVerify(int isGoldenRuleVerify)
{
StringBuilder resultStr = new StringBuilder();
resultStr.Append("<option>21212<option>");
return resultStr.ToString();
}

返回的却是这样的:

大的方向确实是路径问题,通常项目中公司会对前端请求的路径做一个后缀名称的验证。如:正常的接口=》queryMeetingList.ajax 但在请求时我们公司要改成queryMeetingList.webApp才行。具体每个公司怎么处理都不同。不过大的方向可以说是路径问题。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-30

解决方法是关闭response的writer。

下面是ajax代码

$j.ajax({
type : "POST",
url : "/asi/jsonCarrier.jsp",
data : {"artistId":"${artistID}"},  //这里从session里拿出了artistID变量,用的是el表达式
datatype : "text",
timeout: 10000,
success : function(data) {
if (data!="" && data!=null){
var dataArr = data;
var jsonData = dataArr.statistics;
var priceData = [];
var volumeData = [];
var summaryData = [];
$j.each(jsonData, function(i, dataItem) {
priceData[i] = [ i, dataItem.beta ];
volumeData[i] = [ i, dataItem.volume ];
summaryData[i] = [ i, dataItem.volatility ];

});
$j("#artistName").html(dataArr.meta.artist_forename+" "+dataArr.meta.artist_surname);
displayGraph(jsonData, priceData, volumeData, summaryData);
}
},
error : function(XMLHttpRequest, textStatus, errorThrown){
alert(textStatus);
}
})

下面是 jsonCarrier.jsp里的java代码

<%
String artistId = request.getParameter("artistId");
String jsonData = DBSightXmlUtil.getXmlFromServer("http://aaa.com/json/asi-artist-"+ artistId + "-y.json");

response.setContentType("application/json");
response.getWriter().flush();
response.getWriter().write(jsonData);
response.getWriter().close();  //这里就是关键

%>

本回答被网友采纳
第2个回答  2016-12-07
有可能是ajax的url写错了,我今天也是这个问题,路径改完后就没事了
第3个回答  2015-11-13
检查下 后端 是否有输出 比如var_dump(); 之类的

ajax 请求的接口部分 不能有输出动作
第4个回答  2018-02-03
也是返回html页面代码
原来是是自己吧ajax里面的url写成uel了 哈哈哈哈 所以就是找不到文件
改成url就好了 哈哈哈哈 不行还要 加强 啊

为什么jquery ajax 返回的是整个页面的html
你把返回的内容服务器端弄恒html片段,mimi格式设置成text\/plain.插入的时候解析成html再插入应该就是你要的效果。jquery的转化例子 .get(url,function(response){ var parent = $("#parentid");parent.append($(response));});

在项目里我用jquery进行ajax请求服务器 服务器返回的不是json而是html代...
你用ajax请求时要设置一下请求返回的数据类型dataType如 .ajax({type:"get",dataType:"json",url:"jil.jsp",dataFilter:function(data,type){alert(data);}});还有你服务器端要返回一个跟你设置的datatype一致的数据类型 像JSP要用out.clear();清除一下那些不要的代码 ...

jquery中的ajax返回类型中text和html有什么区别?
你可以试一下text这个方法,就会发现页面上面填充以后的效果和你所传回来的html代码是一样的。html方法会把你传回来的字符串翻译成你想要的样子。而且text方法去某些标签中的内容的时候是不会取内容中的html标签,html则是全取。建议有时间多看看jquery的API ...

用JQUERY的POST出去后返回的值怎么会是网页的HTML代码?
多利用case语句,这样整个网站就结构化了。

jquery ajax中都支持哪些返回类型?
你好,阅读jquery API,一直ajax支持如下返回类型的数据;"xml": 返回 XML 文档,可用 jQuery 处理。"html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下...

jquery ajax return
你这个JQ的ajax是异步的,所以大多时候没执行完AJAX就return htmlcontent了,所以就空了 最好在success里写上你想要处理的过程,别用return

ajax请求接口里的数据,然后显示在页面里
1、在模板中使用了jQuery插件封装的ajax,我用到的是get请求,这在django中涉及到模板和静态文件的使用。2、然后配置路由,因为我们在ajax中请求的路由地址是getdata,所以在django路由中也要设计这个路由url,并且用views的函数处理路由。3、然后用视图函数处理对应路由url的请求,然后导入方法JsonResponse,...

$.ajax()请求的返回的值怎样输出在一个div里???
.ajax({...success(data){ \/\/如果数据结构是data ={ data:5 } \/\/那么就是这样 $('div').html(data.data);或者 $('div').text(data.data); 然后div显示的值就是5}})

ajax请求a.html页面,返回指定的div中内容
ajax获取页面的返回值是可以当作独立的html文档操作的,支持jq的选择器操作,所以可以通过以下方式获取copy块中的源码:success: function(responseText) { var result=$(responseText).find(“copy”).first().html() ;\/\/result即为copy中的源码,当然也可以通过val(),text()获取相关值 ...

jquery get怎么返回整个页面
用jquery ajax吧。一下是他的用法。如果你熟悉javascript的ajax的话就很简单了。.ajax({ type: "get",cache:false,\/\/设置缓存为FALSE url: url,\/\/须要处理的后台页面 beforeSend: function(XMLHttpRequest){ \/\/在显示之前你要干什麼?\/\/ShowLoading();},\/\/显示成功后你要做什麼动作,data是你重...

相似回答