在node上处理OPTIONS请求
学习cors跨域问题种,非简单请求时,浏览器会发送一个预请求询问服务端,能否通过同源策略检查,这个预请求是OPTIONS类型的。
在使用原生node构建的服务中,需要对OPTIONS请求方法进行处理。
const http = require('http');
http
.createServer(function (request, response) {
if (request.method == 'OPTIONS') {
response.writeHead(200, {
'Access-Control-Allow-Origin': '*',
});
response.end('');
}
response.writeHead(200, {
'Content-Type': 'application/json;charset=utf-8',
'Access-Control-Allow-Origin': '*',
});
response.end(JSON.stringify({ value: 'hello node' }));
})
.listen(8888);
注意。在处理OPTIONS请求时,也需要设置头部的 Access-Control-Allow-Origin 属性,浏览器也会对OTIONS请求进行同源策略检查。相应的 Access-Control-Allow-Headers 也需要设置非简单请求的头部字段。