Bisakah seseorang melihat ini dan membantu saya? Saya telah mengerjakannya untuk sementara waktu sekarang dan tidak dapat menemukan apa yang saya lewatkan.

Saya mencoba mengatur HTML bagian dalam elemen DOM berdasarkan keberadaan kode di dalam nilai pesan dari objek respons ini

{
  error: "{\"code\":-1121,\"msg\":\"Invalid symbol.\"}"
  message: "400 - \"{\\\"code\\\":-1121,\\\"msg\\\":\\\"Invalid symbol.\\\"}\""
  name: "StatusCodeError"
  statusCode: 400
}
const data = await res.json();
if (data.statusCode == 400) {
  let parsedData = data.toString();
  if (parsedData.includes('1121')) {
    statusMessage.className = 'alert alert-danger text-center err-message';
    statusMessage.innerHTML = 'Invalid symbol.'

  }
}
0
user2079164 12 Mei 2021, 18:34

3 jawaban

Jawaban Terbaik

data.error adalah JSON, Anda harus menguraikannya lalu memeriksa properti code.

const data = await res.json();
if (data.statusCode == 400) {
  let error = JSON.parse(data.error);
  if (error.code == -1121) {
    statusMessage.className = 'alert alert-danger text-center err-message';
    statusMessage.innerHTML = error.msg;

  }
}
1
Barmar 12 Mei 2021, 15:46

ParsedData yang dicentang seharusnya adalah pesannya, bukan seluruh datanya

var data={
  error: "{\"code\":-1121,\"msg\":\"Invalid symbol.\"}",
  message: "400 - \"{\\\"code\\\":-1121,\\\"msg\\\":\\\"Invalid symbol.\\\"}\"",
  name: "StatusCodeError",
  statusCode: 400,
}


if (data.statusCode == 400) {
  let parsedData = data.message.toString();
  if (parsedData.includes('1121')) {
   console.log('alert alert-danger text-center err-message');
    console.log('Invalid symbol.')}
  }
-1
caroline mwasigala 12 Mei 2021, 15:50

Sebelum Anda menguraikan data, ubah ke format JSON.

let parsedData = JSON.parse(data.error);

Periksa properti tertentu code dengan menggunakan notasi titik

if(parsedData.code === -1121))
0
Steverst1 12 Mei 2021, 15:50