Http请求方式,head和options

1,153 阅读1分钟

OPTIONS请求

试探请求,在CORS跨域请求中,首先浏览器会发送一个试探请求验证是否可以和服务器跨域通信,服务器返回200,则浏览器继续发送真实的请求.

服务器端设置如下:

const express = require('express'),
	app = express();
app.listen(8090, () => {
	console.log('listen ...');
});
app.use(
	bodyParser.urlencoded({
		extended: false
	})
);

// 服务器端设置允许源
app.use((req, res, next) => {
	// const ACCESS_ORIGIN = '*'; // 允许源
	/* 单一源可以根据请求的域名进行动态的设置,多个系统请求也可以跨域 */
	const ACCESS_ORIGIN = 'http://127.0.0.1:5500'; // 允许单一源
	const CREDENTIALS = true; // 允许携带资源凭证
	// const HEADERS = 'Content-Type'; // 允许哪些头
	// const ALLOW_METHODS = 'get,post'; // 允许哪些方法
	res.header('Access-Control-Allow-Origin', ACCESS_ORIGIN);
	res.header('Access-Control-Allow-Credentials', CREDENTIALS);
	// res.header('Access-Control-Allow-Headers', HEADERS);
	// res.header('Access-Control-Allow-Methods', ALLOW_METHODS);
	req.method === 'OPTIONS'
		? res.send('CURRENT SERVICES SUPPORT CROSS DOMAIN REQUESTS!')
		: next();
});

head请求

HEAD和GET本质是一样的,区别在于HEAD不含有呈现数据,而仅仅是HTTP头信息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个资源是否存在,我们通常使用GET,但这里用HEAD则意义更加明确。

head请求实际开发中从没有用到过。