我創建一個服務器到我的在線掃雷遊戲,我必須處理登錄信息。我從一個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 –