FastAPI отклоняет запрос POST из кода JavaScript, но не из стороннего приложения (бессонница)Python

Программы на Python
Ответить
Anonymous
 FastAPI отклоняет запрос POST из кода JavaScript, но не из стороннего приложения (бессонница)

Сообщение Anonymous »

Когда я использую бессонницу для отправки запроса на публикацию, я получаю код 200, и все работает нормально, но когда я отправляю запрос на выборку через JavaScript, я получаю ошибку 405 «метод не разрешен», хотя я разрешил отправлять запросы со стороны сервера.
(Код на стороне сервера использует Python).
Код на стороне сервера

Код: Выделить всё

from pydantic import BaseModel
from typing import Optional
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

origins = ["*"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["POST", "GET"],
allow_headers=["*"],
)

class data_format(BaseModel):
comment_id : int
username : str
comment_body : Optional[str] = None

@app.post('/post/submit_post')
async def sumbit_post(somename_3: data_format):
comment_id = somename_3.comment_id
username = somename_3.username
comment_body = somename_3.comment_body
# add_table_data(comment_id, username, comment_body)                //Unrelated code
return {
'Response': 'Submission received',
'Data' : somename_3
}
JS-код

Код: Выделить всё

var payload = {
"comment_id" : 4,
"username" : "user4",
"comment_body": "comment_4"
};
fetch("/post/submit_post",
{
method: "POST",
body: JSON.stringify(payload),

headers: {
'Content-Type': 'application/json'
}
})
.then(function(res){ return res.json(); })
.then(function(data){ alert( JSON.stringify( data ) ) })
Ошибка

[img]https: //i.sstatic.net/qJVYH.png[/img]

Что мне делать, чтобы обойти эту ошибку?

Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/714 ... -party-req
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»