【发布时间】:2015-12-31 07:41:22
【问题描述】:
我正在为我的在线扫雷游戏创建服务器,我必须处理登录信息。我正在以 JSON 对象的形式从客户端发送信息,现在我正在尝试解析它。但是,我使用“OPTIONS”方法收到消息。我知道这是预飞行的 CORS 并且我理解其背后的原因,但我的问题是:我如何处理这个请求,响应客户端“好的,您可以发送您的“POST”并解析它,以便我可以在数据库中注册人。有人可以帮忙吗?在此先感谢大家,祝大家新年快乐!
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'
});
}
【问题讨论】:
-
注意:origin:'*' 不能与授权标头一起使用。下面的示例正确使用了特定的来源
-
另外,对于客户端,您必须为 XMLHttpRequest 指定 allowCredentials = true - 否则 cookie 不会与 cors 一起发送
标签: javascript ajax http server cors