Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengendalikan Ralat Semasa Menghantar Data JSON dari JavaScript ke FastAPI?

Bagaimana Mengendalikan Ralat Semasa Menghantar Data JSON dari JavaScript ke FastAPI?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-13 16:53:03844semak imbas

How to Handle Errors When Sending JSON Data from JavaScript to FastAPI?

Ralat Pengendalian dalam Menyiarkan Data JSON daripada JavaScript ke FastAPI

Untuk menghantar data daripada bahagian hadapan JavaScript ke bahagian belakang FastAPI, anda mesti memastikan data dihantar dalam format yang betul dan ke titik akhir yang sesuai. Jika anda menghadapi ralat 422 Entiti Tidak Boleh Diproses, ia mungkin disebabkan oleh pemformatan data yang salah.

Parameter Pertanyaan lwn. Parameter JSON

Secara lalai, FastAPI mentafsir parameter fungsi yang tidak disertakan dalam laluan sebagai parameter pertanyaan. Walau bagaimanapun, untuk data JSON, anda perlu menentukannya secara eksplisit menggunakan salah satu kaedah berikut:

1. Model Pydantic:

Tentukan model Pydantic untuk mewakili struktur data JSON:

from pydantic import BaseModel

class Item(BaseModel):
    eth_addr: str

@app.post('/ethAddress')
def add_eth_addr(item: Item):
    return item

2. Jenis Badan:

Gunakan jenis Badan untuk menentukan bahawa parameter harus dihuraikan daripada badan permintaan:

from fastapi import Body

@app.post('/ethAddress')
def add_eth_addr(eth_addr: str = Body()):
    return {'eth_addr': eth_addr}

3. Body Embed:

Untuk parameter badan tunggal, anda boleh menggunakan argumen embed=True untuk menghuraikan data secara automatik daripada badan permintaan:

from fastapi import Body

@app.post('/ethAddress')
def add_eth_addr(eth_addr: str = Body(embed=True)):
    return {'eth_addr': eth_addr}

JavaScript Fetch API

Apabila menggunakan API Ambil dalam JavaScript untuk menghantar data JSON, anda mesti menetapkan pengepala Jenis Kandungan kepada aplikasi/json dan nyatakan data dalam medan badan:

fetch("http://localhost:8000/ethAddress", {
  method: "POST",
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "eth_addr": "some address"
  }),
});

Sumber Tambahan

Untuk maklumat lanjut dan contoh terperinci, rujuk dokumentasi dan sumber berikut:

  • [Permintaan dan Respons JSON FastAPI](https://fastapi.tiangolo.com/tutorial/body/)
  • [Menghantar data JSON dengan permintaan POST dalam JavaScript](https://stackoverflow.com/questions/44832885/sending-json-data-with-post-requests-in-javascript)
  • [ POST permintaan dengan kandungan JSON dalam JavaScript menggunakan API Ambil](https://stackoverflow.com/questions/55749929/post-request-with-json-content-in-javascript-using-fetch-api)

Atas ialah kandungan terperinci Bagaimana Mengendalikan Ralat Semasa Menghantar Data JSON dari JavaScript ke FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn