【问题标题】:Fetching API data on localhost with VueJS使用 VueJS 在 localhost 上获取 API 数据
【发布时间】:2018-09-03 19:21:59
【问题描述】:

这就是我的功能,非常简单:

mounted: function(){
      this.$http.get('http://localhost:80/gaming/api/game/1').then((data)=>{
        console.log(data.body);
      });
    }

我的 VueJS 应用程序在端口 8080 上运行,我的 PHP 在端口 80 上的 XAMPP 上运行。
当我尝试从我的 API 中获取某些内容时,我收到以下错误:

Uncaught (in promise) Response {url: "http://localhost:80/gaming/api/game/1", ok: false, status: 0, statusText: "", headers: Headers, …}

我能做什么?

【问题讨论】:

  • 在浏览器的开发者工具中查看requests(network),可能是preflight requests有问题
  • @Evhz 我检查了网络选项卡,请求似乎出现在那里,并且响应正确。但是承诺在 VueJS 中失败了。

标签: vue.js xampp vuejs2 localhost vue-resource


【解决方案1】:

添加header("Access-Control-Allow-Origin: *"); 以允许CORSphp 上。 祝你好运

【讨论】:

  • 如果只有 vue 应用呢?
【解决方案2】:

您是否启用了 CORS?使用开发人员工具验证您的调用是否因 CORS 而失败。在 chrome 中安装 CORS 扩展并启用 CORS 会有所帮助。或者,如果您必须仅在 localhost 上运行应用程序,则在您的 PHP 应用程序中添加 OPTIONS。

【讨论】:

  • 我不认为这是一个 CORS 问题,因为结果是 404 而不是别的。
  • 奇怪的是——这就是问题所在。必须使用带有 JS 的标准 AJAX 请求进行调试,才能在控制台中获取 cross origin 错误。
猜你喜欢
  • 2021-12-06
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-23
  • 2021-09-16
  • 2019-01-18
相关资源
最近更新 更多