猿问

nginx没办法跨域

之前发了一次没人回答,可能是问题描述的不太详细

在nginx服务器配置如下:

add_header Access-Control-Allow-Origin  $http_origin;
add_header Access-Control-Allow-Headers 'Cookie,Set-Cookie,token,x-requested-with,content-type,withcredentials';
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,DELETE,PUT';
add_header 'Access-Control-Allow-Credentials' 'true';

ajax 也配置了 withCredentials = true

后端接口验证数据 如果验证失败返回httpCode 为 405
如果没有登录或者登录过期返回的httpCode 是 401

但是httpcode 不是200 接口访问就出现了禁止跨域的问题!!
有什么办法解决 服务端返回任意状态码都不会有问题???

UYOU
浏览 423回答 5
5回答

繁星coding

ThinkPHP 5应该可以在中间件直接配置,不用去Nginx那么麻烦。 不知道那些点踩的人是什么心态。

茅侃侃

看了你的补充,发现是你服务端没有返回Access-Control-Allow-Origin这个头,nginx很久没配过了,估计是配置有问题,你可以在程序里做这个返回头的实现测试一下。

肥皂起泡泡

看看 $http_origin 这个变量的值是什么啊,这个很重要,况且 cors 一般不用在 webserver 里面配,web 框架里面都有中间件之类的来解决的。
随时随地看视频慕课网APP
我要回答