[英]Not able to connect to backend over https from ionic android app
無法通過ionic CLI在android應用上通過“ https”連接到后端。
它在瀏覽器上,在Android手機上的調試模式下都可以正常工作。 只是在發布模式下不起作用。 它甚至可以在“ http”上運行,但不能在“ https”上運行。
而且我的SSL證書不是自簽名的。 這是正確購買的證書,所有SSL檢查人員都說很好。
嘗試了所有可以在互聯網上找到的解決方案。
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; media-src *; script-src *;">
<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.