我创建一个服务器到我的在线扫雷游戏,我必须处理登录信息。我从一个JSON对象的客户端发送信息,现在我正试图解析它。但是,我收到带有“OPTIONS”方法的消息。我知道这是预先计划好的CORS,我明白其背后的原因,但我的问题是:我如何处理这个请求,回应客户端“好吧,你可以发送你的”POST“并解析它,这样我可以在数据库中注册人员。有人可以帮忙吗?在此先感谢大家,祝大家新年快乐!创建服务器 - 处理CORS预冲
var formidable = require('formidable');
var http = require('http'); //
var url = require('url');
var mysql = require('mysql');
var server = http.createServer(function(request, response) {
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
response.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'}); //server responde 'text/plain; charset=utf-8'
handle(request); // function to handle the reques
}).listen(8020);
console.log("Listen on port 8020 boy...");
function handle(request){
console.log(request.url);
console.log(request.method);
if (request.url === '/register') {
var form = new formidable.IncomingForm();
form.parse(request, function (err, fields, files) {
register(fields);
});
}
}
function register(fields){
console.log("Requested login/register. Here are the fields");
console.log(fields);
//gotoDB();
}
function gotoDB(){
var conn = mysql.createConnection({
host : 'localhost', // Connecting to DB..
user : 'user',
password : 'UWish',
database : 'school'
});
}
注意:起源:'*'不能与Authroization头一起使用。下面的例子正确地使用了一个特定的来源 –
另外,至于客户端,你必须指定allowCredentials = true到XMLHttpRequest - 否则cookies不是随着cors –