Fetch API javascript'i kullanarak Content-Type'ı application / Json olarak ayarlayın

0

Soru

Javascript'te Getirme API'sini kullanarak bir spring uygulamasına bazı form verileri göndermeye çalışıyorum. Form verilerini göndermek için bu kodum var:

document.querySelector('#formPet').addEventListener('submit', event => {
    event.preventDefault();
    let email= document.querySelector("#email");
    fetch('http://localhost:8080/petForm/'+email.value+'/pets', {
      method: 'POST',
      body: JSON.stringify({
        help: "helpme:("
      })
    })
  });

ancak "Desteklenmeyen Ortam Türü"415 durum hatası alıyorum. Özellikle 'Content-Type' başlığını 'application/json' olarak ayarladığımda bile 'text/plain'gibi gönderir

fetch('http://localhost:8080/petForm/'+email.value+'/pets', {
      method: 'POST',
      header: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        help: "helpme:("
      })
    })
  });

bu sunucudan aldığım yanıttır:

Server response

İşte ilkbaharda isteği kabul eden yöntem:

    @PostMapping("petForm/{id}/pets")
    public ResponseEntity<Pet> createPet(@PathVariable("id") String ownerId, @RequestBody Map<String, Object> data){
        System.out.println(data);
        return ResponseEntity.ok().build();
    }

isteğin neden 'metin / düz' biçiminde gönderildiğini bilmiyorum, postman'da Spring yöntemini deniyorum ve verileri json biçiminde gönderdiğimde iyi çalışıyor.

fetch java javascript spring
2021-11-22 16:48:10
2

En iyi cevabı

1

JavaScript kodunuzda "başlık" yerine "başlıklar"kullanmanız gerekir. Fetch API belgelerine bakın: https://developer.mozilla.org/en-US/docs/Web/API/fetch

2021-11-22 17:18:18
0
step 1 : add @CrossOrigin after @PostMapping(value = "petForm/{id}/pets")

like : 



@PostMapping(value = "petForm/{id}/pets")
    @CrossOrigin
    public ResponseEntity<String> createPet(@PathVariable("id") String ownerId, @RequestBody Map<String, Object> data){
        System.out.println(data);
        return ResponseEntity.ok().build();
    }


step 2 : add double quotes to help word
 it is not  json fromat :====>    help: "helpme" 
Correct : 
      it is not  json fromat :====>    "help": "helpme" 
2021-11-22 19:10:50

Şu anda yazıldığı gibi, cevabınız belirsizdir. Lütfen başkalarının sorulan soruyu nasıl ele aldığını anlamalarına yardımcı olacak ek ayrıntılar eklemek için düzenleyin. İyi yanıtların nasıl yazılacağı hakkında daha fazla bilgiyi yardım merkezi'nde bulabilirsiniz.
Community

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................