前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >It does not have HTTP ok status.

It does not have HTTP ok status.

原创
作者头像
执行上下文
发布2024-03-01 13:37:04
2780
发布2024-03-01 13:37:04
举报
文章被收录于专栏:执行上下文

因为现在博客(cuixinxin.cn)一直是用的 WordPress 来搭建的。以前一个自己用 vue二开的博客就不怎么使用了。

后来因为服务器到期迁移,新服务器因为 WordPress 可以用宝塔来部署,当时也想着lieme也用宝塔面板来部署管理。

结果因为中间时间太长了。自己当初怎么部署 Lieme 的已经全部忘记了。只记得要配置 ngnix 和跨域什么的。导致在宝塔部署完成后,C 端页面是可以正常访问的。但是 Lieme站的管理后台是报跨域的问题。

因为已经有新博客了,当时把 Lieme站 迁移到了 cuixinxin.cn 所以这个问题就一直扔在那没有管。因为也不怎么用啊。

但是毕竟有时候还是会打开 Lieme 看一下。因为有的服务还是用的这个域名来部署。

正好过年前 cuixinxin.cn 的备案掉了。因为备案碰到过年其实这段时间博客是一直不能访问的。我也只好耐心的等着备案完成。这时候有看到 Lieme 的跨域,强迫症上来了,小样我还整不了你。

因为距离上次部署的时间太久了,好长一段时间也没有折腾部署相关的问题。感觉有种无从下手的感觉。

本地访问是没有任何问题的。而且博客也是可以获取到数据,但切换的 admin 就不行了。

因为本地是访问好好的,但是部署到服务器就有问题,一开始我也没有注意看一直以为是跨域的问题。就去 php设置 header 和 去 ngnix 中设置 location。但是死活就是不行。

我一直以为是 ngnix配置不正确或者是博客的处理方式和 admin 的接口有差异,但是因为时间太久了。根本想不起来了。

其实下面的报错是浏览器发送 options 预请求的时候没有正确处理。导致预请求过不去。所以后面的 admin的相关接口就报错。

因为我的浏览器的 Network 开了 FETCH/XHR 的过滤。所以根本没有看到 OPTIONS 的预请求。一直纠结在跨域上面。然后本来让以前的同事帮看是不是 php哪里问题的。然后给了我上面的截图。我放开之后才知道了原因所在。

然后就去后端代码中将 OPTIONS 单独处理了一下。

代码语言:javascript
复制
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods:  *');
header('Access-Control-Allow-Headers: *');

if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
    //允许的源域名
    header("Access-Control-Allow-Origin: *");
    //允许的请求头信息
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
    //允许的请求类型
    header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
    exit;
}

发现 OPTIONS 正常处理后又出现了下面问题。

只要将 header 改成下面的就好了。

代码语言:javascript
复制
//处理跨域预检请求
if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
    //允许的源域名
    header("Access-Control-Allow-Origin: *");
    //允许的请求头信息
    header("Access-Control-Allow-Headers: *");
    //允许的请求类型
    header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
    exit;
}

总结

由于 Network 一直未全部打开,导致没有看到预请求的 OPTIONS 没有成功,我就一直以为是 Ngnix或者后端代码有问题。下回排查问题得注意这个了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档