В чем разница между https-запросом node.js и XMLHttpRequest?

В чем разница между HTTPS-запросом, отправленным через модуль node.js, и через XMLHttpRequest?

Я пытаюсь отправить HTTPS-запрос GET на amazon aws, чтобы получить токен безопасности из javascript (XMLHttpRequest), и он всегда завершается с ошибкой: «Происхождение http://my_ipне разрешено Access-Control-Allow-Origin», но если я отправляю тот же HTTPS-запрос GET через модуль node.js, он работает нормально.

Меня это смущает, потому что, если сервер поддерживает CORS, любой запрос из любого места должен завершиться ошибкой, но он проходит через node.js, но не через XMLHttpRequest.

Это НЕ ПРОДАЕТСЯ

var url_ = "https://sts.amazonaws.com/?Action=GetSessionToken" +
            "&DurationSeconds=3600" +
            "&AWSAccessKeyId=XXXXXXXXXXXXXXX" +
            "&Version=2011-06-15" +
            "&Timestamp=" + encode(timestamp) +
            "&Signature=" + encode(hash) +
            "&SignatureVersion=2&SignatureMethod=HmacSHA256";

// Simple GET request
$.get(url_, function(data) {
    alert("response: " + data);
});

Это РАБОТАЕТ

var https = require('https');
var options = {
    host    : 'sts.amazonaws.com',
    method  : 'GET',
    path    : '/?Action=GetSessionToken' +
              '&DurationSeconds=3600' +
              '&AWSAccessKeyId=XXXXXXXXXXXXXX' +
              '&Version=2011-06-15' +
              '&' + timestamp +
              '&' + signature +
              '&SignatureVersion=2&SignatureMethod=HmacSHA256'
};

https.get(options, function(res) {
    res.on('data', function(d) {
        process.stdout.write(d);
    });    
}).on('error', function(e) {
    console.error(e);
});

Может ли кто-нибудь объяснить мне, как это работает?

8
задан Nico 17 June 2016 в 11:29
поделиться