問題のスクリーンショット
問題分析
今日、ブロック:混合コンテンツの エラーが突然複数のインターフェース に表示されたので、チェックして見つけました:
エラー:httpリクエストを送信するためのhttpsページエラー(ブラウザーがhttpsによるhttpリクエストの送信を妨げています)
プロジェクトがhttpsプロトコルに変更されたため、リクエストが傍受されたことがわかりました。
実際、ブラウザーはリクエストをhttpsページにhttpを埋め込むことを許可していません。高レベルのブラウザーはユーザーエクスペリエンスのエラーを報告せず、コンソールにエラーメッセージを出力するだけです。
Mixed Content: The page was loaded over HTTPS,blocked the content must be served over HTTPS
以下に示すように:
解決策
方法1. 次のコードをメインページのヘッドに追加します(呼び出されたhttpリクエストをhttpsリクエストにアップグレードして呼び出します):
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
方法2. ローカルバックエンドを調べ(ローカルバックエンドをサービスの中間層として使用)、バックエンドから他のサーバーのhttpリクエストを呼び出します。
以下は、バックエンドの中継インターフェースです
/**
* 删除应用App
*/
@RequestMapping(value = "/delVersionConfig", produces = "text/html;charset=UTF-8")
@ResponseBody
public JSONObject delVersionConfig(Model model, HttpServletRequest request, String appId) {
JSONObject resultJSON = new JSONObject();
String JSONURL = "http://" + CommonData.DATA_URL + "/app/xxx/xxxx";
Map<String, Object> condMap = new HashMap<String, Object>();
condMap.put("id", appId);
// 调用http封装类
String result = HttpUtils.getHttpClient(JSONURL, condMap);
LOGGER.info("selectAllApplication_info--result:" + result);
resultJSON = JSON.parseObject(result);
return resultJSON;
}
HttpUtilsパッケージクラスのHttpUtils.getHttpClient実行メソッド
/**
* 向指定URL发送GET方法的请求
*
* @param url 发送请求的URL 例如:http://localhost:8080/demo/login
* @param param 请求参数 例:{ "userName":"admin", "password":"123456" }
* @return URL 所代表远程资源的响应结果
*/
public static String getHttpClient(String url, Map<String, Object> param) {
StringBuilder result = new StringBuilder();
BufferedReader in = null;
try {
URL realUrl = createURL(url, param);
HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("Charset", "UTF-8");
conn.connect();
in = new BufferedReader(new InputStreamReader(
conn.getInputStream(),"UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result.append(line);
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result.toString();
}