首页 > 解决方案 > 尝试检索本地 json 文件时出现 ECONNREFUSED 错误

问题描述

我正在使用 nightwatchjs,我需要执行一些 API 调用。

为了构造对 POST API 调用的请求,我需要检索本地 json。

所以我

function retrieveJsonFile(path){
    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
    var archivoTxt = new XMLHttpRequest();
    archivoTxt.open("GET", path, false);
    archivoTxt.send(null);
    console.log(archivoTxt);
}

当路径是

'创建.json'

控制台上记录了什么

{ UNSENT: 0,
  OPENED: 1,
  HEADERS_RECEIVED: 2,
  LOADING: 3,
  DONE: 4,
  readyState: 4,
  onreadystatechange: null,
  responseText: undefined,
  responseXML: '',
  status: 0,
  statusText:
   { errno: 'ECONNREFUSED',
     code: 'ECONNREFUSED',
     syscall: 'connect',
     address: '127.0.0.1',
     port: 80 },
  withCredentials: false,
  open: [Function],
  setDisableHeaderCheck: [Function],
  setRequestHeader: [Function],
  getResponseHeader: [Function],
  getAllResponseHeaders: [Function],
  getRequestHeader: [Function],
  send: [Function],
  handleError: [Function],
  abort: [Function],
  addEventListener: [Function],
  removeEventListener: [Function],
  dispatchEvent: [Function] }

我错过了我在这里做错了什么。这可能与默认IP地址有关吗?关于此实现的此错误的任何线索?

标签: javascriptxmlhttprequestnightwatch.js

解决方案


您的路径必须是提供文件的 URL。您不能仅通过使用文件的相对路径从 JavaScript 加载文件。

你试过一个简单的:

var json = require('./create.json');

您也可以尝试使用FileReader API 直接从浏览器读取。

这是图像的示例:

var file = fileInput.files[0];
var imageType = /image.*/;

if (file.type.match(imageType)) {
  var reader = new FileReader();

  reader.onload = function(e) {
    fileDisplayArea.innerHTML = "";

    // Create a new image.
    var img = new Image();
    // Set the img src property using the data URL.
    img.src = reader.result;

    // Add the image to the page.
    fileDisplayArea.appendChild(img);
  }

  reader.readAsDataURL(file); 
} else {
  fileDisplayArea.innerHTML = "File not supported!";
}

推荐阅读