Golang을 사용하여 Reactjs 애플리케이션에서 Axios 게시 데이터를 수신하는 문제

王林
풀어 주다: 2024-02-06 08:39:08
앞으로
538명이 탐색했습니다.

使用 Golang 从 Reactjs 应用程序接收 Axios 发布数据时出现问题

질문 내용

Axios 게시물을 포트 9000으로 보내는 Reactjs를 사용하여 로컬로 호스팅되는 웹페이지가 있습니다. 포트를 수신하고 게시물을 수신하는 golang 서버가 있습니다. 그런 다음 게시물을 디코딩하지만 데이터를 얻지 못합니다. 다음은 Reactjs 애플리케이션에서 axios post를 보내는 코드 부분입니다.

으아악

다음은 게시물을 처리하는 golang 서버 부분입니다.

으아악

다음은 목록 항목 구조입니다

으아악

작업 대신 제목으로 이름을 바꾸고 정적 변수만 전달하려고 했지만 소용이 없었습니다.

콘솔에서는 입력한 텍스트를 올바르게 인쇄하지만 콘솔이 golang 서버에서 axios 응답을 출력할 때 해당 응답에는 작업 이름이 포함되지 않습니다.

이것은 golang 서버의 응답 데이터 부분의 예입니다: data: {_id: '000000000000000000000000', title:'test'}.

이것만 출력합니다data: {_id: '000000000000000000000000'}

포스트를 받은 후 golang 터미널 출력은 다음과 같습니다.

으아악

작업 속성이 새 에서 작동하는 것 같습니다. 내 문제는 새 작업에 웹 페이지에서 입력한 텍스트가 없다는 것입니다. 더 많은 코드가 필요하시면 아래 코드를 참고해주세요

  • 메인 저장소
  • reactjs 파일
  • 마스터 파일로 이동

정답


이러한 문제를 디버깅하려면 devtools를 사용하는 것이 좋습니다.

스크린샷은 페이로드가 URL 형식으로 인코딩되었음을 보여줍니다. 하지만 서버는 json 디코더를 사용하여 읽으려고 합니다(_ = json.newdecoder(r.body).decode(&newtask))。如果您不忽略 decode 的错误,它应该报告内容不是有效的 json。要解决此问题,只需从 client/src/to-do-list.js 中删除 {headers: {"content-type": "application/x-www-form-urlencoded"}} 그게 다입니다.

변경 후 페이로드는 다음과 같습니다.

기타 오류:

1. context-type 헤더가 응답 내용과 일치하지 않습니다

go-server/main.go 中的 func createtask 또 다른 질문도 있습니다. 응답은 json:

으로 인코딩됩니다. 으아악

다음과 충돌:

으아악

제목은 다음으로 바꿔야 합니다:

으아악

2. cors 설정이 잘못되었습니다

으아악

options 请求将由 getalltask​​s 处理。为了允许 post 请求中的 content-type 标头,应将以下行添加到 getalltask​​s

으아악

요청에 따라 다음 줄이 createtask 不处理 options 삭제될 수 있습니다:

으아악

위 내용은 Golang을 사용하여 Reactjs 애플리케이션에서 Axios 게시 데이터를 수신하는 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿