[学習] JavaのWeb開発クロスドメインリクエスト
=================================================
1、JSONP
=================================================
コードは説明できないシンプルで
JSONとJSONPの読み違い https://kb.cnblogs.com/page/139725/を
パッケージycx.crossdomain.controller。 輸入com.fasterxml.jackson.databind.ObjectMapper。 輸入org.springframework.util.StringUtils。 輸入org.springframework.web.bind.annotation.RequestMapping。 輸入org.springframework.web.bind.annotation.RestController。 インポートのjavax.servlet.http.HttpServletRequest; インポートのjavax.servlet.http.HttpServletResponse; 輸入てjava.io.PrintWriter; 輸入java.util.HashMapを; 輸入java.util.Map; @RestController パブリック クラスIndexController { @RequestMapping( "/" ) 公共の 空隙率(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスロー例外{ 地図 <文字列、オブジェクト>データマップ= 新しい HashMapの<> (); dataMap.put( "ステータス"、200 ); dataMap.put( "メッセージ"、 "OK" ); dataMap.put( "データ"、 "Hello World"の); ObjectMapperマッパー = 新しいObjectMapper(); 文字列データ = mapper.writeValueAsString(データマップ)。 PrintWriterアウト = response.getWriter()。 文字列のコールバック= request.getParameter( "コールバック" )。 もし(StringUtils.isEmpty(コールバック)){ out.print(データ)。 } 他{ out.print(コールバック + "(" +データ+ ")" )。 } out.flush()。 out.close(); } }
<!DOCTYPE HTML > < HTML LANG = "EN" > < 頭> < メタ文字コード= "UTF-8" > < タイトル> JSONP </ タイトル> < スクリプトタイプ= "テキスト/ javascriptの" SRC = "JS / jqueryの-3.4。 1.jsは」> </ スクリプト> </ ヘッド> < 身体> < スクリプト> //はCORSポリシーによってブロックされました:いいえ『アクセス制御-許可-起源』 ヘッダは、要求されたリソース上に存在します。//$アヤックス({ // タイプ: "GET"、 // 非同期:偽、 // URL: "のhttp:// localhostを:9902"、 // 成功:機能(結果){ // console.dir(結果) ; // } // エラー:関数(E){ // console.dir(E); // } // })。 $アヤックス({ タイプ:" GET " 、 非同期:偽、 URL:" のhttp:// localhostを:9902 " 、 データ型:" JSONP "、 JSONP:" コールバック" 、 jsonpCallback:" ハンドラ" 、 成功:関数(結果){ console.dir(結果)。 }、 エラー:関数(E){ console.dir(E); } })。 </ スクリプト> </ ボディ> </ HTML >