javascript - 无法访问本地 Node 服务器上创建的API

标签 javascript html node.js api

我在 Node 服务器上创建了一个简单的 API。服务器在端口 9000 上运行。我创建了一个名为 getUserDetails 的端点,并传递一个简单的对象。问题是我可以通过输入完整的 URL 'http://localhost:9000/getUserDetails 从浏览器访问 API。 '.

但我无法访问另一个 HTML 文件中的 API。为了详细说明,我创建了一个简单的 HTML 文件来测试此 API。

我的 Node 服务器:

const app = express();

app.get('/getUserDetails', (req, res) => {
    res.send({
        firstname : 'Giri',
        secondname: 'Aakula',
        dob: '15-09-1997',
        age: 22,
        qualification : 'Graduate',
        status : 'pass'
    })
})
app.listen(9000);

我的 HTML 文件

<!DOCTYPE html>
<html>
<head>
    <title>Test page</title>
    <style>
        h1{
            font-size: 50px;
        }
    </style>  
</head>
<script>
    fetch('http://localhost:9000/getUserDetails')
  .then(
    function(response) {
      if (response.status !== 200) {
        console.log('Looks like there was a problem. Status Code: ' +
          response.status);
        return;
      }

      // Examine the text in the response
      response.json().then(function(data) {
        console.log(data);
      });
    }
  )
  .catch(function(err) {
    console.log('Fetch Error :-S', err);
  });
</script>
<body>
    <h1>This is a test page</h1>
</body>
</html>

最佳答案

我忘了添加cors。通过添加这一行解决了我的问题。

const express = require('express');
const app = express();

app.get('/getUserDetails', (req, res) => {
    //this is the updated line
    res.setHeader('Access-Control-Allow-Origin', '*'); 

    res.send({
        firstname : 'Giri',
        secondname: 'Aakula',
        dob: '15-09-1997',
        age: 22,
        qualification : 'Graduate',
        status : 'pass'
    })
})
app.listen(9000);

关于javascript - 无法访问本地 Node 服务器上创建的API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60844112/

相关文章:

javascript - 在 React Native 应用程序中实现 redux 不起作用

javascript - 如何将异步回调中的字符串添加到一起?

php - 使用 PHP 将 SQL Join 语句连接到 HTML 表中的单个字段

android - ionic 4 : How to fix a login page design

javascript - vue-cli : dist/js/is not found in website source

javascript - 在 ASP.NET MVC 3 中上传文件而不刷新页面

javascript - jQuery 简单对话框事件

html - 为什么我的 CSS3 box-sizing 中的最后一个元素太宽了?

node.js - 如何将多个POST参数传递给mongodb并获得匹配结果

javascript - 如何使用 typeorm 查询生成器创建查询来过滤数据库中的数据?