jquery ajax返回的页面是html该怎么解决?

jquery ajax返回的页面是html该怎么解决?,第1张

解决方法是关闭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()  //这里就是关键

%>

dataType\x0d\x0a类型:String\x0d\x0a\x0d\x0a预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值: \x0d\x0a\x0d\x0a•"xml": 返回 XML 文档,可用 jQuery 处理。\x0d\x0a•"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。\x0d\x0a•"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)\x0d\x0a•"json": 返回 JSON 数据 。\x0d\x0a•"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。\x0d\x0a•"text": 返回纯文本字符串


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6097677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存