淺談JQuery+ajax+jsonp 跨域訪問_jquery

來源:互聯網
上載者:User

Jsonp(JSON with Padding)是資料格式 json 的一種“使用模式”,可以讓網頁從別的網域擷取資料。

一. 用戶端

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="resource/js/jquery-1.7.2.js"></script> </head> <script type="text/javascript"> $(function(){     /*   //簡寫形式,效果相同   $.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?",       function(data){         $("#showcontent").text("Result:"+data.result)   });   */   $.ajax({     type : "get",     async:false,     url : "http://app.example.com/base/json.do?sid=1494&busiId=101",     dataType : "jsonp",//資料類型為jsonp     jsonp: "jsonpCallback",//服務端用於接收callback調用的function名的參數     success : function(data){       $("#showcontent").text("Result:"+data.result)     },     error:function(){       alert('fail');     }   });  }); </script> <body> <div id="showcontent">Result:</div> </body> </html> 

二. 伺服器端

import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;  @Controller public class ExchangeJsonController {   @RequestMapping("/base/json.do")   public void exchangeJson(HttpServletRequest request,HttpServletResponse response) {     try {     response.setContentType("text/plain");     response.setHeader("Pragma", "No-cache");     response.setHeader("Cache-Control", "no-cache");     response.setDateHeader("Expires", 0);     Map<String,String> map = new HashMap<String,String>();      map.put("result", "content");     PrintWriter out = response.getWriter();        JSONObject resultJSON = JSONObject.fromObject(map); //根據需要拼裝json     String jsonpCallback = request.getParameter("jsonpCallback");//用戶端請求參數     out.println(jsonpCallback+"("+resultJSON.toString(1,1)+")");//返回jsonp格式資料     out.flush();     out.close();    } catch (IOException e) {     e.printStackTrace();    }   } } 

以上就是小編為大家帶來的淺談JQuery+ajax+jsonp 跨域訪問全部內容了,希望大家多多支援雲棲社區~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.