Ajax的数据类型
前面在Ajax的使用中,遇到了一个这样的问题:界面开发出来是用在手机上使用的,然而数据是通过服务器提供的API,在界
面上使用JQuery的Ajax来调用数据,开始怎么也调用不到,而且不报错误,后面现在浏览器测试好了,在放手机上加载本地的面。
1、服务器关键代码如下:
/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse* response)*/protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/javascript");//这个要注意PrintWriter out = response.getWriter();String callback = request.getParameter("callback");out.print(callback+ "([{ name:‘John‘,age:‘19‘},{ name:‘joe‘,age:‘20‘}])");System.out.println("callback = " + callback);out.flush();out.close();}
$.ajax({url:"http://localhost:8081/JsonpServer/JsonpServlet",dataType:"jsonp",jsonp:"callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback),需和服务器端一致jsonpCallback:"person",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名success:function(json){//alert(json[0].name);}});// 相当于重写success后执行的函数(自定义为person)function person(json){alert("I am person function...");alert(json[0].name);}
分析:最开始没有效果是 dataType:"json", 所以测试了很久都没有出来, 后面修改成 dataType:"jsonp", 就可以使用了。原因是 dataType 为 json 数据格式的时候,不能跨域访问,jsonp 是跨域访问的。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。