Обновлено: По-видимому, ошибкой (в моем третьем примере) был знак "?" в http://example.herokuapp.com/api/v1/tickets? После того как удалил, работает :)
Я пытаюсь сделать почтовый запрос с помощью axios, и когда я делаю это в почтальоне, все работает нормально, но когда я делаю это в своем коде, я всегда получаю обратно 500 или 400.
В почтальоне мой (данные здесь примерные) мой URL:
http://example.herokuapp.com/api/v1/tickets?
в моем теле внутри почтальона:
pin: 123ABC,
ride_id: 24,
token: XXAAXXAAXX
Итак, в моем коде я все перепробовал.
первая попытка:
return axios.post("http://example.herokuapp.com/api/v1/tickets?pin = "123ABC"&ride_id=24&token=XXAAXXAAXX")
Здесь я получаю сообщение об ошибке: запрос завершился неудачно с кодом состояния 400.
2-я попытка:
return axios.post("http://example.herokuapp.com/api/v1/tickets?", {
params: {
pin: "123ABC",
ride_id: 24,
token: "XXAAXXAAXX"
}
третья попытка:
return axios.post("http://example.herokuapp.com/api/v1/tickets?", {
pin: "123ABC",
ride_id: 24,
token: "XXAAXXAAXX"
})
Любая помощь будет очень признательна !!!
Возможный дубликат Как разместить параметры запроса с помощью Axios?
@ChrisG Я думаю, что вторая попытка с null между URL-адресом и объектом является правильным способом в соответствии с этим ответом: Как разместить параметры запроса с помощью Axios?. В противном случае данные отправляются как часть тела запроса, а не как параметры запроса.
Насколько я могу судить, OP пытается отправить параметры POST, а не GET. Первая попытка была неудачной, но тест POSTMAN был правильным.
@ zero298 Я на самом деле также пробовал добавить нуль между URL-адресом и параметрами, но безуспешно
Вы сейчас тестируете почтовый запрос со своего веб-сайта локально, попадая на свой сервер heroku?
Третий способ правильный. Второй аргумент - это данные тела, как и предполагалось при запросе POST. Опять же: где размещен код реакции? На одном сервере? Как выглядит код сервера?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


какой язык используется в вашем бэкэнде?
если это php, помните, что для внешних запросов вы должны разместить
header("Access-Control-Allow-Origin: *");
Как указано в вопросе, OP использует heroku, то есть Node / JS.
Третий способ - это правильный способ использования почтового запроса с аксиомами. Параметры связаны с запросами на получение.
Причина, по которой ваши запросы работают в Postman, но не удается на веб-сайте, может быть ошибкой CORS. Вы можете увидеть, является ли это ошибкой CORS, посмотрев на вкладку своей сети, и вы увидите, что запрос, который не работает, является запросом OPTIONS. Он должен сказать что-то вроде
http://localhost:8080 is not allowed by Access-Control-Allow-Origin
Чтобы исправить это, вам нужно будет добавить несколько строк кода на свой сервер узла.
var cors = require('cors')
var app = express()
app.use(cors())
Вы можете больше узнать о cors здесь: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors и https://www.npmjs.com/package/cors
Клиентский код, вызывающий
axios.post, размещен на том же сервере heroku? (кстати, согласно документации, правильная 3-я версия)