• 跨域问题,无法得到数据,啾啾我把


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 2301_82221503 2024-05-14 18:11 采纳率: 0% 浏览 3 首页/ 前端 / 跨域问题,无法得到数据,啾啾我把 前端htmlvscode vscode前端,出现这样的问题咋么办Fetch failed: TypeError: Failed to fetch at file:///C:/Users/19154/Desktop/datawork/%E6%9F%B1%E7%8A%B6%E5%9B%BE.html:57:9 {stack: 'TypeError: Failed to fetch at file:///C:/…atawork/%E6%9F%B1%E7%8A%B6%E5%9B%BE.html:57:9', message: 'Failed to fetch'} ```html 二手车价格区间分布
    展开全部 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    3条回答 默认 最新

    • 专家-皆知 2024-05-14 18:11
      关注

      检查跨域设置,确保服务端允许跨域请求。

      以上回复有部分引自免费微信小程序:皆我百晓生。 如问题尚未解决,还请稍待,如有疑问请回复进一步沟通。

      评论
      专家-皆知 回复 2301_82221503 2024-05-14 18:11

      看起来你在尝试使用 JavaScript 的 Fetch API 从服务器获取数据,并将这些数据用于 ECharts 图表的渲染。但是出现了 "Fetch failed: TypeError: Failed to fetch" 的错误。这通常是由于跨域访问控制(CORS)的问题导致的。

      为了解决这个问题,你需要在服务器端设置允许来自前端页面的跨域请求。对于 PHP 服务器来说,可以在 pricerange.php 文件的顶部加入以下代码来允许所有来源的 GET 请求:

      
      

      接下来,在前端的 JavaScript 代码中,你已经正确设置了 Fetch API 的基本配置。不过,考虑到你可能只是想获取 JSON 数据,可以稍微调整一下代码以提高可读性:

      // ...
      fetch('pricerange.php')
          .then(response => {
              if (!response.ok) {
                  throw new Error('Network response was not ok');
              }
              return response.json(); // 直接解析响应体为 JSON
          })
          .then(data => {
              console.log(data);
              drawBarChart(data);
          })
          .catch(error => {
              console.error('Fetch failed:', error);
              // 添加适当的错误处理逻辑
          });
      // ...
      

      确保你的 PHP 服务器正在运行并且可以通过网络访问到。同时,确认 pricerange.php 文件返回的是有效的 JSON 格式数据。这样应该能解决你的跨域问题并成功获取数据进行图表渲染。

      如果你还有其他问题,例如如何设置 PHP 服务器、如何检查服务器日志或如何调试 JavaScript,欢迎继续提问。

      回复
    • 笑面虎 2024-05-14 18:11
      关注

      以下内容由CHATGPT及笑面虎共同生成、有用望采纳:


      【您想要解决的问题】:您遇到的问题是前端开发中的跨域问题,导致无法从本地HTML文件通过fetch API获取后端数据。

      【问题出现原因】:跨域问题通常是因为浏览器的同源策略(Same-Origin Policy)导致的。同源策略是一种浏览器安全机制,它限制了从一个源加载的文档或脚本与另一个源的资源进行交互的能力。在您的案例中,您尝试从本地文件系统(file:///)发起请求到后端服务器(可能是另一个域名或端口),这违反了同源策略。

      【问题解决方案】:要解决这个问题,您可以采取以下几种方法之一:

      1. 使用本地服务器:不要直接从本地文件系统运行您的HTML文件,而是使用本地服务器。例如,您可以使用Python的SimpleHTTPServer、Node.js的http-server或Visual Studio Code的Live Server等工具。

      2. 修改后端配置:如果您控制后端服务器,可以在服务器上设置CORS(跨源资源共享)策略,允许前端应用从不同的源进行请求。

      3. 代理服务器:在开发环境中,您可以使用代理服务器来绕过跨域问题。例如,您可以在vscode中配置代理,将前端的请求转发到后端。

      【提供代码】:由于您需要解决的是跨域问题,而不是直接修改HTML或JavaScript代码,因此没有具体的代码可以提供。但是,以下是使用Node.js的http-server启动本地服务器的步骤:

      1. 全局安装http-server(如果尚未安装):

        npm install -g http-server
        
      2. 进入到您的项目目录:

        cd /path/to/your/project
        
      3. 启动本地服务器:

        http-server -p 8080
        

        这将在8080端口启动一个本地服务器。

      【代码运行方式】:您需要在本地服务器环境下运行您的HTML文件。按照上述步骤启动本地服务器后,使用浏览器访问http://localhost:8080,然后查看您的HTML页面。

      【代码预期运行结果】:如果本地服务器设置正确,且后端服务也正常运行,您应该能够看到柱状图正常显示,没有跨域错误。

      【推荐相关链接】:

      展开全部

      评论 编辑记录
    • 经海路大白狗 前端领域优质创作者 2024-05-15 18:31
      关注
      1 npm i js-tool-big-box
      2 import { ajaxBox } from 'js-tool-big-box';
      3 ajaxBox.sendJSONP('http://127.0.0.1:3000/users/bar', 'callback', function(data){
            console.log('获取到的JSONP请求数据', data);
      });
      如果还是找不到解决办法,用js-tool-big-box发个jsonp请求试试
      
      
      
      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    JVM内存和垃圾回收-09.对象的实例化内存布局与访问定位
    Unity编辑器扩展——实现样条线编辑器
    把握市场潮流,溯源一流品质:在抖in新风潮 国货品牌驶过万重山
    js播放mp3,并且读取srt字幕文件,展示字幕
    【Vue3】官网项目・Vue Mastery Sock-4(计算属性)
    算法学习(二)
    【学生管理系统】权限管理
    五笔字根
    立体相机标定
    数据结构之顺序查找
  • 原文地址:https://ask.csdn.net/questions/8103400