日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用jsonp进行跨域访问

發布時間:2023/12/31 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用jsonp进行跨域访问 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、使用場景

  當我們請求非本服務器的資源的時候,瀏覽器會禁止訪問,并提示不允許跨域訪問。此時我們可以使用jsonp這種請求方式,從其他服務器獲取資源。在客戶端調用提供jsonp支持的接口,獲取jsonp格式的數據。

二、客戶端的實現

  客戶端使用jsp,用js發送ajax請求,代碼如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>jsonp</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><script type="text/javascript" src="./js/jquery-1.9.1.min.js"></script> </head> <body><script type="text/javascript"> jQuery(document).ready(function() {$.ajax( {type : "get",async : false,url : "http://127.0.0.1:8089/test2/TestServlet?id=1",dataType : "jsonp",jsonp : "callback",//傳遞給請求處理程序或頁面的,用以獲得jsonp回調函數名的參數名(一般默認為:callback) jsonpCallback : "Tcallback",//自定義的jsonp回調函數名稱,默認為jQuery自動生成的隨機函數名,也可以寫"?",jQuery會自動為你處理數據 success : function(json) {alert('name: ' + json.name + ',age: ' + json.age);},error : function() {alert('fail');}});}); </script> </body> </html>

?

  此段代碼相當于get請求http://127.0.0.1:8089/test2/TestServlet?id=1&callback=Tcallback .

三、服務器實現

  服務器端使用servlet實現,代碼如下:

public class TestServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{String id = request.getParameter("id");String callback = request.getParameter("callback");//值為Tcallback String name = "zhangsan";int age = 20;String json = String.format("%s({\"name\":\"%s\", \"age\":%s})",callback, name, age);//返回的數據PrintWriter out = response.getWriter();out.print(json);out.flush();out.close();} }

轉載于:https://www.cnblogs.com/always-online/p/3859340.html

總結

以上是生活随笔為你收集整理的使用jsonp进行跨域访问的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。