httpsリクエストエラーブロック:混合コンテンツソリューション(解決済み)

問題のスクリーンショット

 

問題分析

今日、ブロック:混合コンテンツの  エラーが突然複数のインターフェース  に表示されたので、チェックして見つけました:

エラー: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();
    }

 

公開された93元の記事 ウォンの賞賛1169 ビュー25万+

おすすめ

転載: blog.csdn.net/qq_39390545/article/details/105550949