Javascript - не может публиковать данные (используя axios), пока он работает в почтальоне. Зачем? - PullRequest
0 голосов
/ 14 января 2019

EDIT: По-видимому, ошибкой (в моем третьем примере) было «?» в 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"
})

Любая помощь будет так цениться !!!

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Третий способ - это правильный способ использования почтового запроса с axios. Параметры связаны с запросами на получение.

Причиной того, что ваши запросы работают в Почтальоне, но не работают на веб-сайте, может быть ошибка CORS. Вы можете увидеть, является ли это ошибкой CORS, посмотрев на вкладку вашей сети, и вы увидите, что ошибочный запрос является запросом OPTIONS. Следует сказать что-то вроде

http://localhost:8080 is not allowed by Access-Control-Allow-Origin

Чтобы это исправить, вам нужно добавить несколько строк кода на ваш сервер узла.

var cors = require('cors')
var app = express()

app.use(cors())

Вы можете больше посмотреть здесь: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors и https://www.npmjs.com/package/cors

0 голосов
/ 14 января 2019

какой язык используется в вашем бэкэнде?

если это php, помните, что для внешних запросов вы должны разместить

header("Access-Control-Allow-Origin: *");
...