App下載

Ajax的數(shù)據(jù)類型

猿友 2021-01-04 14:47:32 瀏覽數(shù) (4277)
反饋

在 Ajax 的使用中,遇到了一個(gè)這樣的問(wèn)題:界面開(kāi)發(fā)出來(lái)是用在手機(jī)上使用的,但是數(shù)據(jù)是通過(guò)服務(wù)器提供的 API,在界

面上使用 JQuery 的 Ajax 來(lái)調(diào)用數(shù)據(jù),開(kāi)始怎樣也調(diào)用不到,而且不報(bào)毛病,后面現(xiàn)在瀏覽器測(cè)試好了,在放手機(jī)上加載本地的界面。

1、服務(wù)器關(guān)鍵代碼以下:

/**

 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse

 *      response)

 */

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/javascript");//這個(gè)要注意

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、界面關(guān)鍵代碼:

 $.ajax({  

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

  dataType:"jsonp",  

  jsonp:"callback",//傳遞給要求處理程序或頁(yè)面的,用以取得jsonp回調(diào)函數(shù)名的參數(shù)名(默許為:callback),需和服務(wù)器端一致  

  jsonpCallback:"person",//自定義的jsonp回調(diào)函數(shù)名稱,默許為jQuery自動(dòng)生成的隨機(jī)函數(shù)名  

  success:function(json){  

  //alert(json[0].name);  

  }  

  });  

  // 相當(dāng)于重寫(xiě)success后履行的函數(shù)(自定義為person)  

      function person(json){  

      alert("I am person function...");  

      alert(json[0].name);  

  } 

分析:

最開(kāi)始沒(méi)有效果是 dataType:"json", 所以測(cè)試了很久都沒(méi)有出來(lái), 后面修改成    dataType:"jsonp",  就能夠使用了。
緣由是  dataType 為 json 數(shù)據(jù)格式的時(shí)候,不能跨域訪問(wèn),jsonp  是跨域訪問(wèn)的。


以下課程能幫你對(duì)XML有更好的了解:


0 人點(diǎn)贊