最近在做一个小调试,发现ajax访问服务器时,访问成功了,可是每次都跳进error方法。
然后改变在ajax中,改变dataType:"html" 原来为“json” ,因为服务端的代码设置如下:
response.setContentType("application/json;charset=UTF-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.addDateHeader("Expires", 0);
response.getWriter().write(text);
response.getWriter().flush();
由于text不是一个json字符串。
<pre name="code" class="javascript"> $.ajax({
type:"post",
url:"<%=request.getContextPath()%>/getWord.do",
dataType:"html",
data: {id:id},
cache:false,
success:function(data)
{
if(data!=null)
{
$("#textWord").val("");
$("#textWord").val(data);
}
console.log(data);
},
error:function(data)
{
console.log(data);
}
});
另外,ajax的dataType支持类型:
•"xml": 返回 XML 文档,可用 jQuery 处理。
•"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
•"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
•"json": 返回 JSON 数据 。
•"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
•"text": 返回纯文本字符串