http请求 状态码204

今天在调试接口的时候遇到个问题:

一个请求走了两次,一次204,一次200。

且,请求204的  Request Method 是 OPTIONS

http请求 状态码204_第1张图片

在网上查看资料后得知,是因为跨域而引起的,OPTIONS是一种“预检请求”

浏览器在处理跨域访问的请求时如果判断请求为复杂请求,则会先向服务器发送一条预检请求(这就是为什么第一次请求接口是204),根据服务器返回的内容浏览器判断服务器是否允许该请求访问。

如果web服务器采用cors的方式支持跨域访问,在处理复杂请求时这个预检请求是不可避免的。

 

解决方法:

后端接口我是通过egg + mongoose 搭建的。config.default.js 文件里面设置的是:

config.security = {
    csrf :{
        enable:false
    },
    domainWhiteList: [ '*' ],
  };
  // add cors config here
  config.cors = {
      origin: 'http://localhost:3000', // 访问白名单,根据你自己的需要进行设置
      credentials: true,  //允许Cook可以跨域,
      allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH'
  };

 

你可能感兴趣的:(前端,接口请求出现204)