小編給大家分享一下java web如何支持jsonp,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)是專業(yè)的連城網(wǎng)站建設(shè)公司,連城接單;提供網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行連城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
跨域說明
跨域指請(qǐng)求和服務(wù)的域不一致,瀏覽器和H5的ajax請(qǐng)求有影響,而對(duì)服務(wù)端之間的http請(qǐng)求沒有限制。
跨域是瀏覽器攔截了服務(wù)器端返回的相應(yīng),不是攔截了請(qǐng)求。
jsonp跨域請(qǐng)求處理
Jsonp(JSON with Padding) 是 json的一種"使用模式",可以讓網(wǎng)頁從別的域名(網(wǎng)站)那獲取資料,繞過同源策略(若地址里面的協(xié)議、域名和端口號(hào)均相同則屬于同源),即跨域讀取數(shù)據(jù)。
jsonp:利用script標(biāo)簽可以跨域,讓服務(wù)器端返回可執(zhí)行的Javascript函數(shù),參數(shù)為要回發(fā)的數(shù)據(jù)??煽醋鰩в谢卣{(diào)函數(shù)的ajax請(qǐng)求。
js代碼
java后端處理代碼
@ResponseBody @RequestMapping(value = "/url", produces= MediaType.APPLICATION_JSON) public String test( HttpServletRequest request, HttpServletResponse response) throws Exception{ String result = getResult(); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "private,no-cache,no-store,max-age=0"); response.setDateHeader("Expires", 0); String str=request.getParameter("jsonpCallback"); if (str==null||str.equals("")) { return result; } else { return str + "(" + result + ")"; } }
CORS(協(xié)議跨域資源共享)(Cross-origin resource sharing)
它允許瀏覽器向跨源服務(wù)器,發(fā)出XMLHttpRequest請(qǐng)求,從而克服了AJAX只能同源使用的限制 詳細(xì)介紹 戳此
Access-Control-Allow-Origin:* 允許所有域名的腳本訪問該資源
Access-Control-Allow-Methods:GET,POST,PUT,DELETE,OPTIONS 運(yùn)行什么方式訪問資源
Access-Control-Expose-Headers:x-requested-with 暴露的信息
以上是“java web如何支持jsonp”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!