如何使用ajax和express.js发送和接收字符串?

时间:2015-11-04 10:42:22

标签: javascript ajax node.js express

我需要将一个字符串发送到服务器上的一个函数。然后在服务器功能完成后将字符串发送到客户端。

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.

为什么这不会将文本记录到终端,如何将字符串发送回成功函数?

1 个答案:

答案 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 () {
}
});