Как опубликовать форму с помощью fetch в react native?

Я пытаюсь опубликовать форму, содержащую first_name, last_name, email, password и password_confirmation, используя API-интерфейс react-native fetch.

fetch('http://localhost:3000/auth', {
  method: 'post',
  body: JSON.stringify({
    config_name: 'default',
    first_name: this.state.first_name,
    last_name: this.state.last_name,
    email: this.state.email,
    password: this.state.password,
    password_confirmation: this.state.password_confirmation,
  })
})

вывод в консоли Rails

Parameters: {"{"config_name":"default","first_name":"Piyush","last_name":"Chauhan","email":"piyushchauhan2011@gmail.com","password":"diehard4","password_confirmation":"diehard4"}"=>"[FILTERED]"}
Unpermitted parameter: {"config_name":"default","first_name":"Piyush","last_name":"Chauhan","email":"piyushchauhan2011@gmail.com","password":"diehard4","password_confirmation":"diehard4"}

таким образом, его разноска всего значения как string и rails анализирует строку как переменную. Я хочу удалить " {"из ответа json. Как это сделать ?

2 ответов


Итак, если я вас хорошо понимаю, вы хотите опубликовать ту же строку, но только без фигурных скобок?

Если это так, вы можете просто убрать их из строки.

.заменить(/{|}/ги, "")

так это будет выглядеть следующим образом

fetch('http://localhost:3000/auth', {
method: 'post',
body: JSON.stringify({
  config_name: 'default',
  first_name: this.state.first_name,
  last_name: this.state.last_name,
  email: this.state.email,
  password: this.state.password,
  password_confirmation: this.state.password_confirmation,
  }).replace(/{|}/gi, "")
})

const m = encodeURIComponent(userEmail);
const p = encodeURIComponent(userPassword);
const requestBody = `email=${m}&pass=${p}`;
fetch(`http://server.com`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: requestBody
})