【问题标题】:reponse is empty in client side in nodejs节点js中客户端的响应为空
【发布时间】:2017-01-19 21:38:06
【问题描述】:

我可以在邮递员中看到响应,但是当我与客户端签入网络时,我得到了 200 好的结果,但我没有得到任何响应。我认为这可能是因为 CORS。有人可以建议我帮忙吗. 我的js 我正在从客户端发送 users/1,但我什至没有将 param1 传递给我在后端的函数

    var express = require('express');


    var router = express.Router();
     var mysql     =    require('mysql');
    var app = express();
     var cors = require('cors')
    app.use(cors());

    app.use(function(req, res, next) {
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
      next();
    });
     var connection      =    mysql.createConnection({
         // connectionLimit : 100, //important
         host     : 'localhost',
         user     : 'root',
         password : 'root',
         database : 'socialwiki'
     });
     connection.connect(function(error){
      if(!!error){
        console.log('error');

      }else{
        console.log('connected');
      }
    });
    exports.getlist = function( req, res ) {
      console.log(req.id);
     connection.query("SELECT * FROM profile",function(error,result,rows,fields){
        if(!!error){
            console.log('fail');
        }else{
          console.log(result);
          res.send(result);
        }
      // }

      });}

【问题讨论】:

  • 请修正代码中的缩进。确定要使用的缩进(例如 2 个空格?4 个空格?),然后一致地缩进。

标签: node.js express cors


【解决方案1】:

用下面的代码替换上面的代码以允许交叉请求

var express = require('express');
var mysql = require('mysql');

var app = express();
app.use(bodyparser.urlencoded({extended: true}));
app.use(bodyparser.json({ limit: '50mb' }));

app.use(function (req, res, next) {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS');
  res.setHeader('Access-Control-Allow-Headers', 'access-control-allow-methods,access-control-allow-origin,x-access-token,content-type,Origin, X-Requested-With, Accept');
  res.setHeader('Access-Control-Allow-Credentials', true);
  next();
});
var connection      =    mysql.createConnection({
  // connectionLimit : 100, //important
  host     : 'localhost',
  user     : 'root',
  password : 'root',
  database : 'socialwiki'
});
connection.connect(function(error){
  if(!!error){
    console.log('error');

  }else{
    console.log('connected');
  }
});
exports.getlist = function( req, res ) {
  console.log(req.id);
  connection.query("SELECT * FROM profile",function(error,result,rows,fields){
    if(!!error){
      console.log('fail');
    }else{
      console.log(result);
      res.send(result);
    }
  });
};

【讨论】:

  • Supraj,更换后没有任何变化
  • 你能试试这些改动吗
【解决方案2】:

如果 CORS 出现问题,您可以使用节点模块 cors

Here 是一个关于如何使用 express 配置 cors 的示例!

【讨论】:

  • 谢谢joakim,我也需要用同样的方法发帖吗?
猜你喜欢
  • 2018-03-19
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 2017-01-20
  • 2017-08-27
相关资源
最近更新 更多