http请求 状态码204

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

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

且,请求204的  Request Method 是 OPTIONS

在网上查看资料后得知,是因为跨域而引起的,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'
  };
发布了270 篇原创文章 · 获赞 50 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/Miss_liangrm/article/details/104142040
今日推荐