App下載

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

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

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

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

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回調函數(shù)名的參數(shù)名(默許為:callback),需和服務器端一致  

  jsonpCallback:"person",//自定義的jsonp回調函數(shù)名稱,默許為jQuery自動生成的隨機函數(shù)名  

  success:function(json){  

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

  }  

  });  

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

      function person(json){  

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

      alert(json[0].name);  

  } 

分析:

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


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


0 人點贊