单击按钮时在页面上的控制台中显示 Json?

Posted

技术标签:

【中文标题】单击按钮时在页面上的控制台中显示 Json?【英文标题】:Display Json in console on page when the button is clicked? 【发布时间】:2021-08-05 13:36:11 【问题描述】:

我目前正在从我的后端服务器获取 JSON 并将其显示在我的控制台中。当出于测试目的单击提交按钮时,我试图在网页上以原始形式在控制台中显示 JSON。有没有简单的方法来解决这个问题?我目前只是更改窗口,但控制台中的数据甚至没有显示在邮递员中。

也许我可以在表单下方的框中显示数据?

请在下面查看我的 React 代码

import React, Component from 'react';
import Card,Form,ButtonGroup,Button,Col from 'react-bootstrap';
import axios from "axios";

export default class MovieList extends Component 

constructor(props)
super(props);
var config =  headers: 'Access-Control-Allow-Origin': '*';
this.state = this.startState;

startState = id: "";


  handleSubmit = event => 
    event.preventDefault();
    const id = 
      id: this.state.id
    

    axios.get("http://localhost:8082/movies/" + this.state.id, this.config)
      .then(res => 
        window.location = "/retrieve" //This line of code will redirect you once the submission is succeed
        console.log(res);
        console.log(res.data);
        JSON.stringify(res)
        JSON.stringify(res.data)

      )
      .catch((error) => 
                console.error("Error has been caught: " + error);
                console.log(error);
                console.trace();
            );

  
  handleChange = event => 
    this.setState(
      id: event.target.value
    );
  

  render() 
  const id = this.state
    return (
    <Card className = "border border-dark bg-dark text-white">
      <Card.Header> Get Json </Card.Header>
      <Form>
      <Card.Body>
      <Form.Group as = Col>
      <Form.Label> Customer ID </Form.Label>
      <Form.Control
      type = "test"
      placeholder = "Enter ID"
      value=id
      onChange=this.handleChange
       />
      <Form.Text className = "text-muted" >
      Press Get Json to receive JSON Data
      </Form.Text>
      </Form.Group >
      </Card.Body>
      <Card.Footer style = "textAlign": "right">
      <Button onClick = this.handleSubmit
      size = "m"
      variant = "success"
      type = "submit" >
      Get Json
      </Button>
      </Card.Footer>
      </Form>
      </Card>
    )
  

请看下面我的服务器端

@CrossOrigin(origins = "http://localhost:3000", methods = RequestMethod.OPTIONS, RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT, RequestMethod.DELETE, allowedHeaders = "*", allowCredentials = "true")
@RestController
@RequestMapping("/movies")
public class MovieResource 

    @Value("$api.key")
    private String apiKey;

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/movieId")
    public Movie getMovieInfo(@PathVariable("movieId") String movieId) 
        MovieSummary movieSummary = restTemplate.getForObject("https://api.themoviedb.org/3/movie/" + movieId + "?api_key=" +  apiKey, MovieSummary.class);
        return new Movie(movieId, movieSummary.getTitle(), movieSummary.getOverview());

    

【问题讨论】:

【参考方案1】:

如果您只是想测试,那么使用控制台似乎就足够了,但如果您想将它存储在页面上,我会创建一个有状态的变量,例如 rawResponse。当您从 API 取回数据时,您可以更新该变量以包含 json(您可能需要先将 json 字符串化以将其转换为字符串)。

然后,您的页面中有一些条件渲染来显示该 json,如下所示:

rawResponse != "" && <pre>rawResponse</pre>

这只是将rawResponse 的内容呈现在“pre”标签中,该标签应该像代码或其他东西一样格式化它。如果您不熟悉该行代码的作用,可以查找“react 中的条件渲染”。

【讨论】:

以上是关于单击按钮时在页面上的控制台中显示 Json?的主要内容,如果未能解决你的问题,请参考以下文章

如何在单击按钮时在一个视图控制器中正确启用和禁用约束

添加子视图后显示上一个视图控制器的页面视图控制器

关闭并显示按钮上的视图单击从另一个视图

使用spring mvc在按钮单击时在表上添加行并将添加的行绑定到modelAttribute

单击按钮Javascript,HTML时页面重新加载

如何在单击反应中的按钮时在新选项卡中打开页面?我也想向该页面发送一些数据