2014-11-08 8 views
5

Im invio di un testo da una casella di testo per Node.js Server Express per XMLHttpRequest:Dati di accesso invia richiesta XHR in node.js

var text = document.getElementById("textBox").value; 
    console.log(text); 
    var xmlhttp; 
    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
    else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 || xmlhttp.status==200) 
     { 
     document.getElementById("textBox").value =xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("POST","http://127.0.0.1:3000/",true); 
    xmlhttp.send(text); 

La mia domanda è come accedere nel mio server:

var http = require("http"); 
var url = require("url"); 
var qs = require('querystring'); 
var path = require('path'); 
var bodyParser = require('body-parser'); 
var express = require('express'); 

var app = express(); 
// start endle req\res 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.post('/', function(req,res){ 
    console.log("request method :" + req.method); 
    res.end("OK"); 
}); 

// listen at local host:3000 
var server = app.listen(3000, function() { 
    console.log('Listening on port %d', server.address().port); 
}); 

La stringa viene visualizzata come carico utile della richiesta e non desidero utilizzare jQuery.

risposta

-2

Potete leggere il corpo della richiesta tramite req.body:

app.post('/', function(req,res){ 
    console.log("request method :" + req.method); 
    console.log("request body :" + req.body); 
    res.end("OK"); 
}); 
0

A causa di come bodyParser accetta il corpo di una richiesta, è necessario impostare la richiesta header "Content-Type" per 'application/json' per la tua richiesta di funzionare correttamente. Questo è molto semplice da realizzare; un semplice xmlhttp.setRequestHeader('Content-Type', 'application/json') farà il trucco.

+0

penso che hai fatto un piccolo errore: Invece di 'xmlhttp.setRequestHeader ('Content-Type', 'application.json')' dovrebbe essere 'xmlhttp.setRequestHeader ('Content-Type', 'application/json ') ' –