我需要将一个字符串发送到服务器上的一个函数。然后在服务器功能完成后将字符串发送到客户端。
cleint
$.ajax({
type: 'POST',
url: 'http://localhost:1337/text',
data: { q:document.getElementById("text").value},
success: function (response) {
},
error: function () {
}
});
服务器
app.post('/text', function(req, res) {
console.log(data.q);
});
app.listen(1337);
这会在客户端
上返回此错误XMLHttpRequest cannot load http://localhost:1337/text. No Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 404.
为什么这不会将文本记录到终端,如何将字符串发送回成功函数?
答案 0 :(得分:0)
您必须在服务器文件中使用带有Express的bodyParser模块。
npm install body-parser
bodyParser对象公开了各种工厂来创建中间件。所有中间件都将使用已解析的主体填充req.body属性,或者为回调提供错误。 在中间件(即req.body)之后的请求对象上填充包含已解析数据的新body对象。
在您的服务器文件上,更改代码如下:
var bodyParser=require('body-parser');
var app=require('express');
app.use(bodyParser());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.post('/text', function(req, res) {
console.log(req.body.q);
});
app.listen(1337);
在您的客户端文件上,将数据类型JSON添加到ajax请求并将URL更改为“/ text”
$.ajax({
type: 'POST',
url: '/text',
dataType: "json",
data: { q:document.getElementById("text").value},
success: function (response) {
},
error: function () {
}
});