我通过XMLHttpRequest将一些文本从文本框发送到node.js express服务器:
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。
答案 0 :(得分:1)
由于bodyParser如何接受请求的正文,您必须设置请求标头" Content-Type" to' application / json'为了您的要求正常工作。这很容易实现;一个简单的
xmlhttp.setRequestHeader('Content-Type', 'application/json')
会做到这一点。
答案 1 :(得分:-2)
您可以通过req.body
app.post('/', function(req,res){
console.log("request method :" + req.method);
console.log("request body :" + req.body);
res.end("OK");
});