JSon aus FireFox verschicken und empfangen.

Magier

Mitglied
Hallo
ich arbeite zum ersten Mal mit JavaScrip und habe ein Problem. Ich möchte aus FireFox eine URL per JSon an einen Raspberry Pi schicken auf dem Node.js läuft.

Hier die Send-Funktion aus dem FireFox-Addon (FireFox Quantum 64.0 64-Bit unter Windows 7):

Code:
function sendJSon(str_url){
var xhr = new XMLHttpRequest();
var url = "192.168.1.102";
xhr.open("POST", url, true);
//console.log(str_url);
//console.log(JSON.stringify(new String(str_url)));
var data = JSON.stringify(new String(str_url));
xhr.send(data);
//console.log(data);
console.log("Ende");
}

(Die Variable str_url sollte ein String sein und die zu sendende Adresse enthalten).

Das Plugin wird sauber geladen und läuft auch durch. Nur bekomme ich am Ende einen Fehler:

Ende
XML-Verarbeitungsfehler: Kein Wurzel-Element gefunden
Adresse: moz-extension://4ea9205b-f1b3-4f30-8894-88b795d73bff/popup/192.168.1.102
Zeile Nr. 1, Spalte 1:

Ich bin mir nicht sicher woher dieser Fehler kommt. Ich könnte mir vorstellen das es an der Variable url liegt, die eine IP Adresse ist. In den Beispielen ist das immer richtige Domain Adresse aber hier in meinem privaten Netz wollte ich, gerade zum Entwickeln, keine Domains vergeben. Geht das nicht auch so?

Der Node Code sieht so aus.
Code:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
xhr.open('GET', '/', true);
// If specified, responseType must be empty string or "text"
xhr.responseType = 'text';
while (true) {
     xhr.onload = function () {
     if (xhr.readyState === xhr.DONE) {
         if (xhr.status === 200) {
         console.log(xhr.response);
         console.log(xhr.responseText);
      }
   }
};
}
xhr.send(null);

Die Node Version ist v8.11.3 und der Code ist aus einem Beispiel, um eine while() Dauerschleife erweitert. Ich will oder hoffe einfach nur das alles was empfangen wird in der Konsole landet. Ist erst mal nur zum lernen, testen und verstehen.

Hier gibt es keine Fehlermeldungen. Es wird einfach nichts angezeigt.

Könnte mir da jemand vielleicht weiterhelfen und mir erklären was ich falsch mache und wie man das zum laufen bring?

Schon mal herzlichen Dank

Magier
 

mrBrown

Super-Moderator
Mitarbeiter
Ich bin mir nicht sicher woher dieser Fehler kommt. Ich könnte mir vorstellen das es an der Variable url liegt, die eine IP Adresse ist. In den Beispielen ist das immer richtige Domain Adresse aber hier in meinem privaten Netz wollte ich, gerade zum Entwickeln, keine Domains vergeben. Geht das nicht auch so?
An der Variabel URL liegt's nicht. Ist aber in jedem Fall unüblich, einfach nur den String als JSON zu serialisieren (wenn auch möglich).

Mir fallen grad zwei mögliche Fehlerquellen ein: irgendwo ist XML als Contenttype angeben und es wird versucht es zu verarbeiten oder Same-Origin Policy macht da was kaputt.
Vermutlich ist es in beiden Fällen besser, die Fetch-API zu nutzen.


Die Node Version ist v8.11.3 und der Code ist aus einem Beispiel, um eine while() Dauerschleife erweitert. Ich will oder hoffe einfach nur das alles was empfangen wird in der Konsole landet. Ist erst mal nur zum lernen, testen und verstehen.

Hier gibt es keine Fehlermeldungen. Es wird einfach nichts angezeigt.

Könnte mir da jemand vielleicht weiterhelfen und mir erklären was ich falsch mache und wie man das zum laufen bring?
Der "Node"-Code ist in jedem Fall völliger Unsinn.
Du startest auf dem Server einen GET-Request zu der URL '/' (also dem selben Server), setzt dann in einer endlos-Schleife die onload-Funktion neu, die vermutlich niemals was machen wird, weil der Status niemals 200 ist.

Wenn du Serverseitig auf Requests warten willst, solltest du ein passendes Framework wie z.B. express.js nutzen (und dich einmal ganz Grundlegen mit HTTP und Request/Response-Prinzip auseinander setzen)
 

Magier

Mitglied
Danke für den Hinweis...Nach etwas hin und her habe ich jetzt laufender Code.

Code:
function  sendJSon(str_In){
 
  var obj_temp = { "Send" :  str_In};  
  var request = new XMLHttpRequest();  
  var obj_data = JSON.stringify(obj_temp);
   
  request.open("POST", "http://192.168.1.102:3000/");
  request.setRequestHeader("Content-Type", "application/json");  
  /*request.onload = function()
  {
      alert("Response received: " + request.responseText);
  };*/  
  request.send(obj_data); 
}

Und der Tipp mit Express war wirklich gut, DANKE dafür. Es war zwar etwas gefrimel aber es funzt....
Code:
var express  = require("express");
var myParser = require("body-parser");
var multer   = require('multer'); // v1.0.5
var upload   = multer(); // for parsing multipart/form-data
var app      = express();

app.use(myParser.json()); // for parsing application/json
app.use(myParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.post("/", function(request, response) {
     
      obj_Re =  JSON.parse(JSON.stringify(request.body));
      console.log(obj_Re.Send);     
 });

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

Jetzt kann ich weiter bauen ;-) Also Danke.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zeppi Javascript JSON in ein Array Angular, React, JQuery - Fragen zu JavaScript 1
Cellsplitter Api auslesen und in Json Datei speichen - Javascript (node js) Angular, React, JQuery - Fragen zu JavaScript 10
L JSON-Daten aus einen Server mit fetch holen Angular, React, JQuery - Fragen zu JavaScript 3
P Angular geschachteltes json-Objekt verändern Angular, React, JQuery - Fragen zu JavaScript 3
N Antworten einer Quizfrage aus der Json Datenbank mappen Angular, React, JQuery - Fragen zu JavaScript 25
pkm Frage: Uncaught SyntaxError: JSON.parse: expected property name or '}' Angular, React, JQuery - Fragen zu JavaScript 5
P Richtiges Auslesen von mehreren Daten im JSON Format via JavaScript Angular, React, JQuery - Fragen zu JavaScript 2
F JSON Datei in JavaScript einbinden Angular, React, JQuery - Fragen zu JavaScript 1
S Firefox 57: Aktivitätenverfolgung blocks GoogleMaps-Anbindung in iframe Angular, React, JQuery - Fragen zu JavaScript 0
S bat-Datei über Firefox ausführen Angular, React, JQuery - Fragen zu JavaScript 5
S Kleine JS-Funktion funktioniert im Firefox nicht wie sie sollte Angular, React, JQuery - Fragen zu JavaScript 9
F Script funktioniert im IE aber nicht im Firefox Angular, React, JQuery - Fragen zu JavaScript 3
1 Java lädt mit Firefox 3.5.5 nicht mehr! Windows 7 Angular, React, JQuery - Fragen zu JavaScript 3
C Keine Anzeige von Bildern im Firefox Angular, React, JQuery - Fragen zu JavaScript 5
B Script funktioniert nach Firefox Update nicht mehr?? Angular, React, JQuery - Fragen zu JavaScript 2
B Firefox stellt mein Script nicht dar! IE-Explorer geht Angular, React, JQuery - Fragen zu JavaScript 3
M Firefox und Dynamische Frames Angular, React, JQuery - Fragen zu JavaScript 4

Ähnliche Java Themen

Neue Themen


Oben