2016-07-31 7 views
-1

Wenn ich versuche, einige Daten zu meiner Backend-API-Dienst zu schreiben verwende ich das XMLHttpRequest Objekt, aber wenn ich versuche, die Daten mit ajax.send senden sie gesendet nichts an den ServerXHR Beitrag nichts zum Server

-Code snipper:

ajax = new XMLHttpRequest(); 
ajax.open("POST", "https://someapi.com",true); 
ajax.send({ 
    name: "Name", 
    phone: "123468375698563897569575863" 
}); 

ajax.onreadystatechange = function(){ 

    if(ajax.readyState==4){ 
     JSONback = JSON.parse(ajax.response); 
     console.log(JSONback); 
    } 
}; 

Antwort

0

Sie können ein JS-Objekt nicht direkt über die Leitung senden.

Sie müssen es zuerst in eine Zeichenfolge konvertieren, genau wie Sie es analysieren müssen, wenn Sie es zurückbekommen.

ajax = new XMLHttpRequest(); 
ajax.open("POST", "https://balbalbal.com", true); 
ajax.send(
    JSON.stringify({ 
    name: "Name", 
    phone: "123468375698563897569575863" 
    }) 
); 

ajax.onreadystatechange = function(){ 
    if(ajax.readyState==4){ 
    JSONback = JSON.parse(ajax.response); 
    console.log(JSONback); 
    } 
}; 

Der Testcode einfachste PHP auf der Server-Seite wäre:

<?php 
    echo file_get_contents('php://input'); 
?> 

Und hier ist ein etwas komplexeres Beispiel, dass es entschlüsseln, ein neues Feld hinzufügen und es zurückschicken:

<?php 
    $json = file_get_contents('php://input'); 
    $object = json_decode($json); 
    $object->id = 123; 

    echo json_encode($object); 
?> 
+0

Und diesmal i Ereignis nicht die JSON vom Server –

+0

bekommen Was sind Sie auf der Server-Seite tun ? Welche Sprache verwendest du? – Arnauld

+0

Ich benutze PHP als meine serverseitige Sprache, und dies ist mein API-Projekt, das ich mache, und meine Dokumente enthalten bereits jQuery, und ich möchte nur einfachen alten JS-Code hinzufügen, und ich lerne auch JS –

0

Sie müssen:

  1. Say y ou senden JSON
  2. Ihre Daten JavaScript konvertieren Struktur in JSON

Such:

var data = { 
    name: "Name", 
    phone: "123468375698563897569575863" 
}; 

var json = JSON.stringify(data); 

var ajax = new XMLHttpRequest(); 
ajax.open("POST", "https://balbalbal.com", true); 
ajax.setRequestHeader("Content-Type", "application/json"); 
ajax.send(json); 
+0

Und dieses Mal ich Event nicht die JSON zurück vom Server –

+0

@FelixFong - Nun, das ist immer noch wie Sie senden JSON. Wenn Sie JSON nicht zurückbekommen, könnte es viele Gründe dafür geben. Vielleicht machen Sie eine Cross-Origin-Anfrage und stoßen auf dieselbe Herkunftsrichtlinie. Möglicherweise akzeptiert die URL keine JSON-formatierten POST-Anfragen. Vielleicht hast du einfach die URL falsch. Vielleicht ein paar andere Dinge. Verwenden Sie die Registerkarten Netzwerk und Konsole in den Entwicklertools Ihres Browsers, um sie zu debuggen. – Quentin

+0

Um ehrlich zu sein, das ist mein API Dokument Beispiel, ich habe bereits jQuery Standort auf meiner Dokumentseite, aber jetzt möchte ich nur eine weitere Möglichkeit hinzufügen, die dev show zu zeigen, die Verwendung von einfachen alten JS und spielen mit meiner API, und die Das größte Problem, das ich habe, ist, ich bin neu in JS, aber ich weiß, wie man jQuery sehr gut verwendet, wie viele andere –