YBR-crime 2025-05-24 12:17 采纳率: 100%
浏览 30
已结题

软著材料上传失败网站报错

软著材料已上传,网站就报如下错误:
Access to XMLHttpRequest at 'https://oss.ccopyright.com.cn/oss/upload' from origin 'https://register.ccopyright.com.cn' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
oss.ccopyright.com.cn/oss/upload:1

        Failed to load resource: net::ERR_FAILED

oss.ccopyright.com.cn/oss/upload:1

        Failed to load resource: net::ERR_CONNECTION_RESET

Ensure CORS response header values are valid
,导致材料一直上传不了,这是谁的问题?我的吗?昨天就是这样,今天还是这样。

  • 写回答

5条回答 默认 最新

  • 一杯年华@编程空间 2025-05-24 15:43
    关注

    一杯年华@编程空间帮您解答,本答案结合 ChatGPT4.0和DeepSeek整理

    我曾经遇到过类似的问题,软著材料上传时网站报错,提示“Access to XMLHttpRequest...has been blocked by CORS policy”等信息,这通常是由于跨域请求(CORS)配置问题导致的。浏览器为了安全限制,会阻止不同源的请求,而这里“https://register.ccopyright.com.cn”(请求源)和“https://oss.ccopyright.com.cn”(资源源)属于不同域名,触发了跨域限制。

    解决方案分析

    方案1:联系平台修复CORS响应头(最优方案)

    原因:报错核心是目标服务器未返回Access-Control-Allow-Origin响应头,这属于服务器端配置问题。软著上传平台(如版权保护中心官网)可能未正确配置跨域规则,导致浏览器拦截请求。
    操作步骤

    1. 确认问题归属:通过浏览器开发者工具(F12)查看网络请求的响应头,若确实缺少Access-Control-Allow-Origin,则证明是服务器端问题。
    2. 联系平台技术支持:向软著上传平台反馈报错信息,说明跨域配置缺失的问题。例如:

      “您好,上传材料时遇到CORS跨域错误,浏览器提示目标服务器未返回Access-Control-Allow-Origin头,导致上传失败。请检查https://oss.ccopyright.com.cn/oss/upload接口的CORS配置,添加允许https://register.ccopyright.com.cn来源的规则。”

    优势:从根源解决问题,无需用户端额外操作,适用于所有用户。

    方案2:使用浏览器插件临时绕过跨域限制(临时方案)

    原理:通过浏览器扩展程序修改请求头,绕过同源策略限制。
    操作步骤

    1. 安装跨域插件
    2. 启用插件并刷新页面:激活插件后重新尝试上传,插件会自动为请求添加跨域头。

    注意:此方案仅适用于临时测试,可能存在安全风险,不建议长期使用。

    方案3:通过服务器代理转发请求(开发人员适用)

    原理:搭建中间服务器作为代理,将跨域请求转为同域请求。
    代码示例(Node.js)

    const express = require('express');
    const app = express();
    const proxy = require('express-http-proxy');
    
    // 代理OSS上传接口
    app.use('/oss-proxy', proxy('https://oss.ccopyright.com.cn', {
      proxyReqOptDecorator: (req) => {
        req.headers.origin = 'https://register.ccopyright.com.cn'; // 保留原始请求源
        return req;
      }
    }));
    
    app.listen(3000, () => {
      console.log('Proxy server running on port 3000');
    });
    

    操作步骤

    1. 本地启动代理服务器(如上述Node.js服务)。
    2. 修改上传接口地址为代理地址,例如将https://oss.ccopyright.com.cn/oss/upload改为http://localhost:3000/oss-proxy/oss/upload

    适用场景:适合有开发能力的用户,需自行维护代理服务。

    最优方案详细说明

    推荐方案1(联系平台修复)

    • 为什么最优:跨域配置是服务器端的责任,用户无法自行修改平台代码。通过官方渠道反馈后,平台修复后所有用户均可正常使用,一劳永逸。
    • 操作关键点:反馈时需提供完整报错信息(如响应头截图、请求URL等),便于技术人员定位问题。

    希望以上方案能帮你解决问题!如果尝试后仍有疑问,请继续留言。期待楼主采纳~

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

报告相同问题?

问题事件

  • 系统已结题 6月9日
  • 已采纳回答 6月1日
  • 创建了问题 5月24日