JSONP的例子
JSONP技術可以解決AJAX跨域請求的問題。
主要是使用script標籤,請求一段JS指令碼執行。
請求返回的結果會直接以JS指令碼執行。
需要注意的是,JSONP只以Get方式請求,請求的結果也可能被瀏覽器快取。
JQuery可以簡化這個流程。
jsoncallback會自動生成一個隨機名稱,這個名稱就是回撥函式的名稱。
因為是隨機生成的,所以避免了瀏覽器快取資料。
從伺服器返回的結果
jQuery203022411514748819172_1386078136124('你好')
參考:
http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html
主要是使用script標籤,請求一段JS指令碼執行。
-
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"\">
-
<html>
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
<script type="text/javascript">
-
function callback(data)
-
{
-
alert(data);
-
}
-
</script>
-
</head>
-
<body>
-
<script type="text/javascript" src="./InitServlet"></script>
-
</body>
- </html>
-
@WebServlet("/InitServlet")
-
public class InitServlet extends HttpServlet {
-
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
doPost(request, response);
-
}
-
-
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
response.setCharacterEncoding("utf-8");
-
response.getWriter().print("callback('你好')");
-
}
-
- }
需要注意的是,JSONP只以Get方式請求,請求的結果也可能被瀏覽器快取。
JQuery可以簡化這個流程。
-
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"\">
-
<html>
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
<script type="text/javascript"
-
src=""></script>
-
<script type="text/javascript">
-
$(document).ready(function() {
-
$.getJSON("./InitServlet?jsoncallback=?", function(data) {
-
alert(data);
-
})
-
})
-
</script>
-
</head>
-
<body>
-
</body>
- </html>
-
@WebServlet("/InitServlet")
-
public class InitServlet extends HttpServlet {
-
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
doPost(request, response);
-
}
-
-
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
response.setCharacterEncoding("utf-8");
-
String callback = request.getParameter("jsoncallback");
-
response.getWriter().print(callback + "('你好')");
-
}
-
- }
因為是隨機生成的,所以避免了瀏覽器快取資料。
從伺服器返回的結果
jQuery203022411514748819172_1386078136124('你好')
參考:
http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1062082/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JSONPJSON
- jsonp的promise封裝JSONPromise封裝
- JSONP 用法JSON
- JSONP原理JSON
- jsonp的原理與實現JSON
- JSONP的一點筆記JSON筆記
- json jsonp的區別JSON
- 學習JSONPJSON
- sencha touch jsonpJSON
- 細說jsonpJSON
- json與jsonp的區別JSON
- jsonp promise 封裝JSONPromise封裝
- JSONP 是什麼JSON
- JSONP用法詳解JSON
- CORS/JSONP比較CORSJSON
- 面試題-探索JSONP面試題JSON
- json和jsonpJSON
- jsonp 封裝思想JSON封裝
- ajax jsonp跨域JSON跨域
- 深入淺出 JSONPJSON
- Javacc的例子Java
- sqlldr的例子SQL
- 前端也需要了解的 JSONP 安全前端JSON
- ajax與jsonp的區別及用法JSON
- jsonp跨域封裝JSON跨域封裝
- 說說CORS與jsonpCORSJSON
- JavaScript跨域呼叫、JSONPJavaScript跨域JSON
- 原生ajax請求&JSONPJSON
- Node.js返回JSONPNode.jsJSON
- 50行不到實現Promise化的jsonpPromiseJSON
- (Ajax) 淺談 JSONP 的原理與實現JSON
- GetMemory的典型例子
- at new 的使用例子
- JSONP挖掘與高階利用JSON
- JSONP 通用函式封裝JSON函式封裝
- 原生JavaScript實現AJAX、JSONPJavaScriptJSON
- 說說JSON和JSONPJSON
- jsonp 的原理和採用 Promise API 的實現JSONPromiseAPI