簡體   English   中英

無法通過離子安卓應用程序通過https連接到后端

[英]Not able to connect to backend over https from ionic android app

無法通過ionic CLI在android應用上通過“ https”連接到后端。

它在瀏覽器上,在Android手機上的調試模式下都可以正常工作。 只是在發布模式下不起作用。 它甚至可以在“ http”上運行,但不能在“ https”上運行。

而且我的SSL證書不是自簽名的。 這是正確購買的證書,所有SSL檢查人員都說很好。

嘗試了所有可以在互聯網上找到的解決方案。

  1. 已安裝白名單插件。
  2. 重新安裝了白名單插件。
  3. 為default-src添加了帶有“ *”的Content-security-policy。

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; media-src *; script-src *;">

  1. 添加了<allow-intent href="*" /> <allow-navigation href="*" />

看起來應用本身阻止了請求發出。 似乎沒有任何作用。 請幫忙。

非常簡單的解決方案是,在您的API中允許兩個端口

3001(用於SSL / HTTPS)和3002(用於HTTP)。這樣,您的應用可以正常工作,並且您的網站可以在HTTPS中完美運行

我的代碼如下,效果很好:

 var express = require('express'); var DataController = require('./user/DataController'); var UserController = require('./user/UserController'); var db = require('./database/database-db'); var cors = require('cors'); var app = express(); app.use(cors()); app.use(function(req, res, next) { res.setHeader("Access-Control-Allow-Origin", "*"); res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); res.setHeader('Access-Control-Allow-Methods', 'POST'); res.setHeader('Access-Control-Allow-Credentials', true); next(); }); app.use('/user', UserController); app.use('/data', DataController); app.get('/', function(req, res){ res.send("Welcome to the secure mobile and web development world"); }); // This settings are for HTTPS, SSL web applications. // var https = require("https"); // var fs = require("fs"); // var options = { // key: fs.readFileSync("/home/path/ssl/keys/key.key"), // cert: fs.readFileSync("/home/path/ssl/certs/crt.crt") // }; // https.createServer(options,app).listen(3001); // console.log('Welcome to the security world') // This settings are only for HTTP sites // var http = require("http"); // var fs = require("fs"); // http.createServer(app).listen(3001); // console.log('Welcome to the security') //This settings are for both HTTPS,HTTP SSL web applications. var https = require("https"); var http = require("http"); var fs = require("fs"); var options = { key: fs.readFileSync("/home/path/ssl/keys/key.key"), cert: fs.readFileSync("/home/path/ssl/keys/crt.crt") }; https.createServer(options,app).listen(3001); console.log('Welcome to the security world') http.createServer(app).listen(3002); console.log('Welcome to the proxy world') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM