Маршрут API-маршрутизатора приложений Next.js 15 возвращает 405 при проксировании внутреннего API, чтобы избежать CORSJavascript

Форум по Javascript
Ответить
Anonymous
 Маршрут API-маршрутизатора приложений Next.js 15 возвращает 405 при проксировании внутреннего API, чтобы избежать CORS

Сообщение Anonymous »

Вопрос/контекст
Я интегрирую серверный API в приложение Next.js 15 (App Router).
Бэкэнд API работает правильно в Postman, но когда я пытаюсь вызвать его непосредственно из браузера, происходит сбой из-за ошибки CORS (нет Access-Control-Allow-Origin).
Чтобы обойти эту проблему, я создал маршрут API Next.js для проксирования запроса:
Однако при вызове маршрута API Next.js я получаю ошибку 405 Method Not Allowed.

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

Backend API
POST /api/verify/

Works in Postman.

Next.js API Route

File location:

app/api/verify/route.ts

import { NextResponse } from 'next/server'

const BACKEND_URL = 'https://example-backend.com'

export async function POST(req: Request) {
try {
const body = await req.json()

const response = await fetch(`${BACKEND_URL}/api/verify/`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
},
body: JSON.stringify(body),
})

const data = await response.json()

return NextResponse.json(data, { status: response.status })
} catch (error) {
return NextResponse.json(
{ message: 'Internal server error' },
{ status: 500 }
)
}
}

Frontend Call
await axios.post('/api/verify/', {
phone_number: phone.trim(),
})

Error

Network tab shows:

Request URL: http://localhost:3000/api/verify
Request Method: POST
Status Code: 405 Method Not Allowed

Response body:

{"detail":"Method \"GET\" not allowed."}
как избежать ошибки cors и обойти ее в следующей версии js V15

Подробнее здесь: https://stackoverflow.com/questions/798 ... to-avoid-c
Ответить

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

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

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

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

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