2014-11-08 75 views
5

我可是從一個文本框發送一些文字XHR請求發送通過XMLHttpRequest來Node.js的Express服務器:訪問的數據通過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); 

我的問題是如何訪問它在我的服務器:

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); 
}); 

該字符串顯示爲請求負載,我不想使用jQuery。

回答

-2

您可以通過req.body讀取請求體:

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

由於bodyParser如何接受請求的身體,你必須設置請求頭「內容類型」爲「應用/ JSON」爲您的請求正常工作。這很容易完成;一個簡單的 xmlhttp.setRequestHeader('Content-Type', 'application/json')將做的伎倆。

+0

我認爲你犯了一個小錯誤: 而不是'xmlhttp.setRequestHeader( 'Content-Type的', 'application.json')'應該是'xmlhttp.setRequestHeader( 'Content-Type的','應用程序/ JSON「)' – 2016-11-17 15:32:12