2016-09-15 21 views
18

Jak mogę utworzyć żądanie AJAX POST wysyłające dane JSON za pomocą JS vanilla.Wykonaj XmlHttpRequest POST przy użyciu JSON

Rozumiem, że typ zawartości jest zakodowany w postaci url i nie obsługuje zagnieżdżonych JSON.

Czy istnieje sposób, w jaki można wykonać takie żądanie POST za pomocą zagnieżdżonego JSON w zwykłym starym JS. Próbowałem różnych metod serializacji znaleźć tutaj na SO, ale wszystkie spłaszczają mój JSON w jednym formacie.

Oto mój JSON:

{ 
    email: "[email protected]", 
    response: { 
     name: "Tester" 
    } 
} 
+1

Twoje pytanie nie zawiera ważne JSON. Być może wysyłasz ten obiekt JavaScript, który jest następnie konwertowany na JSON przez jakiś proces? Tak czy inaczej, jak zostało powiedziane przez innych w komentarzach do odpowiedzi poniżej, nie ma żadnego powodu, dla którego obiekt JSON powinien zostać spłaszczony. Jeśli masz problemy z określoną biblioteką lub blokiem kodu, opublikuj to. –

Odpowiedz

43

Jeśli używasz JSON poprawnie, można mieć zagnieżdżone obiektu bez problemu:

var xmlhttp = new XMLHttpRequest(); // new HttpRequest instance 
xmlhttp.open("POST", "/json-handler"); 
xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); 
xmlhttp.send(JSON.stringify({ email: "[email protected]", response: { name: "Tester" } })); 
+3

czekaj, więc wysłałeś odpowiedź na pytanie, które wiesz, że jest duplikatem? –

+5

Jest przystosowany do potrzeb PO –

+2

Uważam, że celem jest nie tylko wskazanie czegoś, co może nie pasować do rozwiązania, które ktoś szuka. –