程序员人生 网站导航

Ajax的数据类型

栏目:htmlcss时间:2015-03-27 08:08:06

        前面在Ajax的使用中,遇到了1个这样的问题:界面开发出来是用在手机上使用的,但是数据是通过服务器提供的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();

}


2、界面关键代码;
    

 $.ajax({  

            url:"http://localhost:8081/JsonpServer/JsonpServlet",     

            dataType:"jsonp",  

            jsonp:"callback",//传递给要求处理程序或页面的,用以取得jsonp回调函数名的参数名(默许为:callback),需和服务器端1致  

            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  是跨域访问的。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐