做一个网站在和前端对接的时候出现了跨域的问题(跨域具体可以自己搜索),原因是我的是云服务器
我们通过在浏览器按f12然后选择console查看,发现了上图的报错。
于是在服务器端进行解决这个跨域的问题。(其实前端也是可以解决跨域问题的)
我们通过在入口文件的头部添加header来解决跨域问题
Access-Control-Allow-Origin:* 这句话的意思是允许所有的来源访问,如果要指定特定的来源,则可将*号换成该来源
增加header的方式是没有原生php还是使用框架之分的,都是一样在头部添加!
这里遇到遇到一个新的问题,在做好header的设置后发现还是报同样的跨域的错误
十分奇怪
因为我使用了tp5框架,并且我在入口文件处加了前置操作,我的前置操作在把参数接收前先对参数进行检验,看是否符合规范
于是我去检查前置操作的那个php,之前我使用
exit(json_encode())
的方式把错误返回回去前端,为了更规范,我修改为了自定义抛出异常的方式。
思考会不会是因为这个原因导致还是不能成功跨域
于是把抛出异常换回了exit(json_encode())的方式,惊奇地发现竟然成功了!
这个前置操作的php不能使用这种自定义抛出异常的原因还有待查阅。