1.get接口:通过req.query可以拿到客户端发过来的参数
2.post接口:通过req.body可以拿到客户端提交的表单数据
注意:正常编写的接口,不支持跨域。可以引入第三方中间件cors,注册为全局中间件解决问题。
cors原理:通过配置响应头可以解决浏览器的跨域限制。cors只需要在服务器端配置,浏览器端不需要做任何配置。cors具有兼容性问题,并不是所有版本的浏览器都支持cors。
3.常见cors响应头。
通过res.setHeader()进行设置,常见的响应头有Access-Control-Allow-Orgin()
- res.setHeader(Access-Control-Allow-Orgin,*)*表示允许来自任何域的请求,也可以指定域名。
- res.setHeader(Access-Control-Allow-Headers,请求头名字),默认浏览器向服务器请求时,只能带9个请求头,在这里可以配置额外的请求头
- res.setHeader(Access-Control-Allow-Methods,请求方法名字),默认服务器只支持get,post,head请求,可以设置其他的请求,如果不设置,请求就会失败。
4.简单请求和预检请求
同时满足以下两个条件的请求为简单请求:请求方式为get,post,head中的一种,请求头中不含有自定义请求头。只要不满足上述的任何一个条件,或者发送的数据为application/json格式的数据,就是预检请求。两者的区别在于简单请求只会发送一次,预检请求会发送两次,第一次为option请求,不带任何数据,只是询问服务器是否允许跨域,获得允许后,第二次才是携带数据的真正请求。发送预检请求是一种保护机制,保护资源不被未授权的请求修改。