跨域问题 OPTIONS 报404 It does not have HTTP ok status

node.js后端代码添加了res.setHeader('Access-Control-Allow-Origin', '*')等处理跨域问题,但是请求时OPTIONS请求还是返回 404, 同时控制台报错: It does not have HTTP ok status.请问该如何处理

Request URL: http://127.0.0.1:8000/api/user/login
Request Method: OPTIONS
Status Code: 404 Not Found
Remote Address: 127.0.0.1:8000
Referrer Policy: no-referrer-when-downgrade
Access to XMLHttpRequest at 'http://127.0.0.1:8000/api/user/login' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

node.js

res.setHeader('Content-Type', 'application/json;charset=utf-8')
    res.setHeader('Access-Control-Allow-Origin', '*') // 允许跨域
    res.setHeader('Access-Control-Allow-Credentials', true) // 是否允许发送Cookie,ture为运行 
    res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET, PUT, POST, DELETE')
    res.setHeader(
        "Access-Control-Allow-Headers",
        "Content-Type, Access-Control-Allow-Headers, Access-Control-Request-Headers, Access-Control-Request-Method, Authorization, X-Requested-With, User-Agent, Referer, Origin"
        )
    res.setHeader("Access-Control-Max-Age", 1728000)
阅读 21.8k
1 个回答

res.setHeader('Access-Control-Allow-Origin', '*') // 允许跨域
res.setHeader('Access-Control-Allow-Credentials', true) // 是否允许发送Cookie,ture为运行

如果你跨域想带上凭证信息,那么Access-Control-Allow-Origin就不能设置为*,
可以设置为 req.origin (获取请求origin)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题