MALOUDA-PSA 2024-02-28 18:18 采纳率: 91%
浏览 4
已结题

关于客户端跨域的问题3

服务器都做了以下跨域处理了:


        buffer.append("Content-type: application/json\r\n");
    buffer.append("Access-Control-Allow-Origin:*\r\n");
    buffer.append("Access-Control-Allow-Methods: POST, OPTIONS\r\n");
    buffer.append("Access-Control-Allow-Headers: Content-Type\r\n");

还是报错:

Access to XMLHttpRequest at 'http://192.168.1.32:8888/updatejson' from origin 'http://127.0.0.1:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.


  • 写回答

3条回答 默认 最新

  • Kwan的解忧杂货铺 Java领域优质创作者 2024-02-28 18:19
    关注

    MALOUDA-PSA 晚上好🌙🌙🌙
    本答案参考通义千问

    这个问题可能是由于服务器返回的状态码(HTTP状态码)不是200 OK,而CORS策略要求预检请求(OPTIONS请求)必须得到200状态码的响应。你的服务器配置看起来没有问题,但是实际响应可能有误。

    解决方案

    1. 检查服务器响应

      • 确保在处理POST请求时,服务器确实返回了200 OK状态码。
      • 使用开发者工具检查服务器对OPTIONS请求的响应,确保其状态码也是200。
    2. 检查错误日志

      • 查看服务器的错误日志,可能有其他错误导致返回非200状态。
    3. 修改服务器代码

      • 如果是后端代码问题,可能需要检查处理POST请求的部分,确保正确处理并返回200状态。
    4. 更新CORS配置

      • 如果服务器使用的是Node.js的Express框架,可以在app.options()或相关路由中添加一个中间件来确保预检请求总是返回200:
    app.options('*', function(req, res, next) {
      res.status(204).end();
    });
    
    1. 允许所有方法还是特定方法
      • 如果仅允许特定的HTTP方法,确保Access-Control-Allow-Methods中的内容与实际请求方法匹配。

    如果以上步骤都没有解决问题,可能需要进一步排查网络环境、防火墙设置或者服务器配置是否有其他限制。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月10日
  • 创建了问题 2月28日

悬赏问题

  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加