У меня следующий сервер node.js, настроенный для прослушивания порта 9001
var https = require('https');
var fs = require('fs');
var qs = require('querystring');
var options = {
key: fs.readFileSync('privatekey.pem'),
cert: fs.readFileSync('certificate.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
console.log('Request Received!');
console.log(req.method);
if (true || req.method == 'POST') {
var body = '';
req.on('data', function (data) {
body += data;
});
req.on('end', function () {
console.log(body);
var POST = qs.parse(body);
console.log(POST);
});
}
res.end("hello, world\n");
}).listen(9001);
, и я пытаюсь заставить этот сервер отвечать на вызов AJAX
function form_save()
{
console.log("submitted!");
var data_obj = {
data1: "item1",
data2: "item2"
}
$.ajax({
url: 'https://adam.testserver.com:9001/',
type: "POST",
dataType: "json",
data: data_obj,
success: function() {
console.log("success!");
},
complete: function() {
console.log("complete!");
}
});
}
Тамдве проблемы, возникающие с моей договоренностью.Во-первых, если я запускаю сервер и затем нажимаю кнопку, которая запускает мой form_save (), сервер узла не отвечает, и я получаю следующую ошибку:
submitted!
OPTIONS https://adam.testserver.com:9001/ Resource failed to load
jQuery.extend.ajaxjquery.js:3633
$.ajaxjquery.validate.js:1087
form_savew_worksheet.php:64
confirm_deletew_worksheet.php:95
jQuery.event.handlejquery.js:2693
jQuery.event.add.handlejquery.js:2468
w_worksheet.php:73
complete!
На этом этапе, если я получаю доступ к этому URLdirecty (https://adam.testserver.com:9001/) Я получаю ожидаемый вывод "hello, world", а также консольное сообщение "Request Received! GET". С этого момента, если я нажимаю кнопку, чтобы вызвать мой вызов AJAX, я получаю новую ошибку.
submitted!
XMLHttpRequest cannot load https://adam.testserver.com:9001/. Origin
https://adam.testserver.com is not allowed by Access-Control-Allow-Origin.
w_worksheet.php:73
complete!
Я не понимаю, почему я получаю это сообщение, поскольку и мой сервер форм, и сервер узлов находятся на одном сервере. Спасибо, что нашли время для чтения, я благодарен за любую помощь, которую я могу получить в этом.мы застряли на некоторое время!