【问题标题】:XMLHttpRequest javascript using port numberXMLHttpRequest javascript使用端口号
【发布时间】:2022-11-04 02:17:43
【问题描述】:

我有一个简单的 xhr.open/xhr.send 到我的 node.js 应用程序,但无法弄清楚它为什么不起作用。两者都在同一台服务器上运行。

当我对我的 node.js 应用程序使用 curl 时,它会按预期返回。

Javascript

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:2121/ingredients");
xhr.send();
console.log(xhr.responseText);

节点.js

const express = require('express')
const app = express()
const ingredients = [
  {
      "id": "1",
      "item": "Butter"
  }
];

app.get('/ingredients', (req, res) =>{
  res.send(ingredients);
});

app.listen(2121);

我尝试将我的问题简化为最简单的形式。我一直在阅读有关 CORS ad-nauseum 的信息,但仍然无法使其正常工作。

我尝试在我的节点脚本中将“Access-Control-Allow-Origin”、“*”和“Access-Control-Allow-Headers”、“X-Requested-With”(以及许多其他试验和错误)设置为 no利用。我希望有人对此有一个简单的解决方案。我不是这两种技术的专家。

【问题讨论】:

    标签: javascript node.js cors xmlhttprequest


    【解决方案1】:

    也不是专家,但由于这是一个异步过程(可能需要时间才能完成),您必须在事件发生时处理它,而不是在 console.log() 行上。

    所以看起来你必须像这样添加一个事件处理程序:

    const xhr = new XMLHttpRequest();
    
    function reqListener() {
      console.log(this.responseText);
    }
    
    req.addEventListener("load", reqListener);
    
    xhr.open("GET", "http://localhost:2121/ingredients");
    xhr.send();
    

    当请求完成时,它应该控制台日志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-19
      • 2011-06-11
      • 1970-01-01
      • 2015-05-01
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多