次のような nodejs アプリをセットアップしました。
var express = require('./../../../Library/node_modules/express');
var https = require('https');
var app = express();
httpsOptions = {
key: fs.readFileSync('privatekey.pem'),
cert: fs.readFileSync('certificate.pem') // SELF-SIGNED CERTIFICATE
}
var server = https.createServer(httpsOptions);
app.get('/myservice', function(req, res) {
...
}
server.listen(8443);
インバウンド要求用にサーバーで 8443 ポートを開きました。ブラウザーから開くhttps://mydomain/myservice:8443
と、ブラウザーから信頼できない接続の警告が表示されますが、これは論理的なようです。
次に、(クロスドメインの問題をテストするために) ローカル コンピューターから実行する test.html から、次のようにします。
function testService(){
var data = { some JSON };
$.ajax({
url: 'https://myserver:8443/myservice',
dataType: "jsonp",
data: data,
jsonpCallback: "_mycallback",
cache: false,
timeout: 5000,
success: function(data) {
alert(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus + " " + errorThrown);
}
});
}
私の問題は、このリクエストがタイムアウトすることであり、サービスに到達することさえないと思います。
理由はありますか?
このリクエストがサーバーに到達するたびに、できればあなたの親切な応答のおかげで、信頼できない証明書に関するブラウザの警告はどうなりますか?
$.ajax()
サーバーを静かに呼び出して応答を受信するのをやめますか?