国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jsonp跨域請求實現(xiàn)示例

2019-11-19 17:10:46
字體:
供稿:網(wǎng)友

網(wǎng)上看了很多關(guān)于jsonp的資料,發(fā)現(xiàn)在本機運行后實現(xiàn)不了,有的是有錯漏,有的是說的比較含糊,接合自己的情況,整了一個可運行的示例;

前言:

ajax請求地址:http://192.168.1.102:8080/carop/jsonp

服務(wù)端要返回的jsonp字符串:jsonpCallback({"name":"劉德華","電話":"17688888888"})

jsonp寫法,寫法上可以理解成一個javascript函數(shù)的執(zhí)行,例如alert("hello world")會彈出hello world的窗口,再例如alert({"name":"劉德華"})會彈出[object Object]的窗口。(注意這里參數(shù)兩端沒加雙引號,它是一個有屬性的對象而不是一個字符串)

那么本示例的jsonp中,可以將jsonpCallback理解成函數(shù)名,{"name":"劉德華","電話":"17688888888"}這個對象是這個函數(shù)執(zhí)行時所要傳遞的參數(shù)。

客戶端:

$.ajax({       type: "get",       async:false,url: "http://192.168.1.102:8080/carop/jsonp",       dataType: "jsonp",jsonpCallback:"jsonpCallback",              success: function(data){       alert(data.name+"/n "+data.tel);       }     }); 

其他的ajax方法比如getjson亦可,寫法上有區(qū)別,這里僅采用一種方法。

說明:jsonpCallback:"jsonpCallback",前一個ajax參數(shù)表示要執(zhí)行的函數(shù),后面的”jsonpCallback“,這個是服務(wù)器返回jsonp的javascript函數(shù)名。(網(wǎng)上有相關(guān)資料這個參數(shù)寫的是jsonp而不是jsonpCallback,經(jīng)實際測試要寫成jsonpCallback,jquery版本1.8,所測試瀏覽器為火狐和edge)

服務(wù)端

servlet控制器層直接返回jsonp;

import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/jsonp")public class jsonp extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setCharacterEncoding("UTF-8"); //System.out.println("進入jsonp"); resp.setContentType("text/json;charset=utf-8"); String json="{/"name/":/"劉德華/",/"tel/":/"17688888888/"}"; String jsonp="jsonpCallback("+json+")"; PrintWriter pw=resp.getWriter(); System.out.println(jsonp); pw.print(jsonp);}@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp)  throws ServletException, IOException { // TODO Auto-generated method stub doGet(req, resp); }}

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持武林網(wǎng)!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 广东省| 开远市| 格尔木市| 修水县| 阿合奇县| 平昌县| 衡南县| 金乡县| 鲁甸县| 富源县| 同江市| 乌什县| 阿合奇县| 芜湖市| 梁平县| 固原市| 肥西县| 阜康市| 大化| 铅山县| 贵州省| 巴中市| 玉山县| 浑源县| 民乐县| 巍山| 桂平市| 临江市| 三亚市| 镇江市| 洪江市| 山丹县| 武山县| 舒城县| 海口市| 林州市| 静海县| 沈丘县| 独山县| 得荣县| 揭西县|