Ваша строка dados
недопустима JSON, поскольку она не соответствует JSON правилам форматирования (например, все ключи должны быть в двойных кавычках, все строки должны быть разделены, и т. Д. c). Не используйте строки-шаблоны для создания JSON данных, потому что вам нужно будет обрабатывать такие вещи, как экранирование строк и тому подобное.
Измените код, чтобы сначала создать DTO object
, а затем, если вы все еще хотите вашу dados
шаблонную строку, а затем создайте ее отдельно. Чтобы избежать повторения, вы можете использовать функцию для генерации строки, перечисляя свойства DTO.
const dto = {
name : form.value.name,
email : form.value.email,
specialty: form.value.specialty,
password : form.value.password
};
const url = `${ this.apiURL }/auth/register_lawyer`;
this.http.post( url, dto ) // <-- Passing a JavaScript `object` will automatically be converted to JSON by Angular: https://angular.io/guide/http#making-a-post-request
.subscribe( resultado => {
console.log(resultado)
},
erro => {
if(erro.status == 400) {
console.log(erro);
}
}
);
const dados = `
name: ${dto.name},
email: ${dto.email},
specialty: ${dto.specialty},
password:${dto.password}
`;
Если вы хотите создать множество этих dados
строк (, которые не JSON), возможно, для целей ведения журнала? (честно, не знаю), сделайте так:
function createTextThatIsNotJson( obj ) {
let text = "";
for( const key in obj ) {
if( text.length > 0 ) text += ",\r\n";
text += " " + key + ": " + obj[key];
}
return text;
}
const dados = createTextThatIsNotJson( dto );