当前位置: 首页 > 面试题库 >

提取请求到本地文件不起作用

赏梓
2023-03-14
问题内容

我正在尝试在本地文件中发出请求,但是我不知道何时尝试在计算机上显示错误。是否可以在项目中提取文件?

 // Option 1
 componentDidMount() {
     fetch('./movies.json')
     .then(res => res.json())
     .then((data) => {
        console.log(data)
     });
 }

 error: Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 at App.js: 10 -->  .then(res => res.json())

 // Option 2
 componentDidMount() {
    fetch('./movies.json', {
       headers : { 
         'Content-Type': 'application/json',
         'Accept': 'application/json'
       }
    })
   .then( res => res.json())
   .then((data) => {
        console.log(data);
   });
 }

 error1: GET http://localhost:3000/movies.json 404 (Not Found) at App.js:15 --> fetch('./movies.json', {
 error2: Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 at App.js: 10 -->  .then(res => res.json())


 // This works
 componentDidMount() {
   fetch('https://facebook.github.io/react-native/movies.json')
   .then( res => res.json() )
   .then( (data) => {
      console.log(data)
   })
 }

问题答案:

您的JSON文件需要由服务器提供服务,因此您需要快速服务器(或任何其他服务器)。在这个例子中,我们使用 express

注意: 您也可以下载git repo

App.js文件

import React, { Component } from 'react';

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      data: null
    };
  }

  componentDidMount() {
    const myHeaders = new Headers({
      "Content-Type": "application/json",
      Accept: "application/json"
    });

    fetch("http://localhost:5000/movie", {
      headers: myHeaders,

    })
      .then(response => {
        console.log(response);
        return response.json();
      })
      .then(data => {
        console.log(data);
        this.setState({ data });
      });
  }

  render() {
    return <div className="App">{JSON.stringify(this.state.data)}</div>;
  }
}

export default App;

server.js

var express = require("express");
var data = require('./movie.json'); // your json file path
var app = express();


app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

app.get("/movie", function(req, res, next) {
  res.send(data);
});

app.listen(5000, () => console.log('Example app listening on port 5000!'))


 类似资料:
  • 问题内容: 我正在努力使用jQuery从XML动态创建UI。我的jQuery在Firefox中可以使用,但在Chrome中不能使用。它给了我这个控制台错误: 跨源请求仅支持以下协议方案:http,数据,chrome,chrome扩展名,https,chrome-extension-resource。 以下是我的jQuery代码,该代码可在Firefox上运行,但不能在Google chrome上运

  • 问题内容: 我在应用程序的一种方法中使用Python的请求库。该方法的主体如下所示: 我想为该方法编写一些单元测试,但是,我想做的是传递一个伪本地URL,例如: 当我使用本地URL调用 requests.get 时,出现以下 KeyError 异常: 问题是如何将本地URL传递给 request.get ? PS:我整理了上面的示例。它可能包含许多错误。 问题答案: 正如@WooParadog解释

  • 我需要在浏览器中打开一个本地html文件。javascript运行良好,但ajax停止工作,XMLHttpRequest会出现交叉原点错误。有没有办法从本地目录运行ajax。对我来说,它只从本地文件运行是必要的。 谢谢

  • 问题内容: 我的问题很简单,我有一个名为new.json的文件,并且试图使用JQuery加载和显示数据。我一直在写JavaScript代码: 并且new.json中的数据如下所示: 问题答案: 如果您使用的是Chrome。因为Chrome不允许xmlhttprequest请求本地文件。因此,jQuery无法加载您的new.json 你可以加 --allow-file-access-from-fil

  • 我有一个名为fake的文件。我的angular应用程序中的json内部资源。此文件的路径如下所示。 MyApp= 我想使用我的组件中的HttpClient(位于应用程序文件夹内)对此文件发出请求。 MyApp= 组件源代码 我发生了以下错误 的HttpErrorResponse Http故障响应http://localhost:4200/assets/json/fake.json:404找不到 我

  • 我正在尝试通过url读取pdf。我遵循了许多stackoverflow建议并使用PyPdf2 FileReader从pdf中提取文本。我的代码如下所示: 我能够成功地提取第一个链接的文本。但是如果我对第二个pdf使用相同的程序。我没有收到任何短信。页码和文档信息似乎出现了。 我尝试通过终端从Pdfminer中提取文本,并能够从第二个pdf中提取文本。 你知道pdf有什么问题吗?或者我使用的库有缺点