Как опубликовать форму с помощью 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
})