2015-07-23 11 views
5

400 Hatalı İstekleri Belirtme AJAX Post yöntemi için 400 Hatalı İstek alıyorum. Backend'de Spring Data Rest Services kullanıyorum. Aşağıda JSJSON AJAX POST

JSON verilerinin serileştirilmesine rağmen ön uçta olduğum koddur. Hala 400 hatalı istek hatası alıyorum. Bu hata, bazı kod arka uçtan veya sunucuya gönderilen istekle ilgili sorunu çözüyorsa olabilir mi? Eğer verilerde SPL karakterler varsa sunucuya göndermeden önce

JAVA Uygulama

@RepositoryRestResource(collectionResourceRel = "SecurityRoleGroup", path = "SecurityRoleGroup") 
public interface SecurityRoleGroupRepository extends PagingAndSortingRepository<SecurityRoleGroup, Long> { 

} 
+0

Konsolda yanıt hata mesajı nedir? –

+0

{"neden": null, "message": "Yönetilen/geri başvuruyla başa çıkamıyor" defaultReference ': type: type org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module $' in deserializer değeri UriStringDeserializer bunları desteklemiyor " } –

+0

Sunucunuz istek parametrelerinizi kaldıramaz. Temel olarak isteğiniz, sunucunun zaten bildiği bir şeyle eşleştirilemez. – alcfeoh

cevap

5

verileri kodlamak gerekiyor. Eğer veri türü json olarak tanımlanan bu yana bunu 2.you olduğu gibi verileri gönderilen yapabilirsiniz dize dönüştürme veri göndermek için gereken 1.Why bu

$.ajax(url, { type: 'POST', 
       dataType: 'json', 
       headers: { 
        'X-CSRF-Token': _csrfGroup.val(), 
        'Content-Type' : 'application/json' 
       }, 
       data: encodeURI(JSON.stringify(groupData)), 
       contentType: 'application/json', 
      }) 
+0

encodeURI komutunu kullanan encodeURIComponent kullanıyorum. "encodeURI tek başına XMLHTTPRequests gibi düzgün HTTP GET ve POST istekleri oluşturamaz, çünkü" & "," + "ve" = "kodları GET ve POST isteklerinde özel karakterler olarak kabul edilir. , bu karakterleri kodlar. " https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/encodeURI –

0

deneyin/uygulama olarak json içerik türünü koymak gerekmez 3.İpucu yöntemini burada kullanıyorsanız, sunucu tarafında aynı şekilde çalıştığınızdan emin olun