You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

axios请求指定URI遇CORS错误,Postman请求正常的技术咨询

CORS错误排查:Postman可正常请求但Axios报错

我通过Postman向目标地址发送HTTP GET请求时能正常获取响应,但用以下Axios代码请求时,出现CORS错误:

错误信息:请求的资源上不存在'Access-Control-Allow-Origin'头

问题代码

const getData = async () => {
  const url = " https://www.aponet.de/apotheke/apothekensuche?tx_aponetpharmacy_search%5Baction%5D=result&tx_aponetpharmacy_search%5Bcontroller%5D=Search&tx_aponetpharmacy_search%5Bsearch%5D%5Bplzort%5D=rothenburg&tx_aponetpharmacy_search%5Bsearch%5D%5Bstreet%5D=&tx_aponetpharmacy_search%5Bsearch%5D%5Bradius%5D=10&tx_aponetpharmacy_search%5Bsearch%5D%5Blat%5D=&tx_aponetpharmacy_search%5Bsearch%5D%5Blng%5D=&type=1981 "
       
  axios.get(url)
    .then((response) => {
      console.log(response);
    })
    .catch((err) => {
      console.log(err);
    })
}

原因分析

Postman属于后端请求工具,不受浏览器的跨域资源共享(CORS)策略约束。而浏览器在发起跨域请求时,会自动触发预检请求,并检查服务器返回的响应头是否包含Access-Control-Allow-Origin,目标服务器未配置该头,所以浏览器拦截了响应,抛出CORS错误。

解决方案

  • 本地代理转发:在前端开发环境配置代理,让请求通过同域名转发到目标服务器,绕过浏览器CORS检查。比如webpack-dev-server的代理配置:
    module.exports = {
      devServer: {
        proxy: {
          '/apotheke': {
            target: 'https://www.aponet.de',
            changeOrigin: true
          }
        }
      }
    };
    
    之后请求路径改为/apotheke/apothekensuche?xxx即可。
  • 服务器端配置CORS:若能控制目标服务器,添加Access-Control-Allow-Origin响应头,可设置为允许的具体域名或*(允许所有域名,不建议生产环境使用)。
  • 开发环境临时插件:使用浏览器CORS插件(如Chrome的Allow CORS: Access-Control-Allow-Origin)临时绕过检查,仅限开发测试,禁止用于生产环境。

内容的提问来源于stack exchange,提问作者ali yıldız

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:35:28