Node.js 得到http://localhost:4000/api/admin/view 400(错误请求)

Node.js 得到http://localhost:4000/api/admin/view 400(错误请求),node.js,angular,mongodb,Node.js,Angular,Mongodb,我需要帮助。每当我的浏览器加载它时,显示错误“GET 400(坏请求)”,但当我点击邮递员时,它工作正常。不明白我缺少什么 组件Ts }) export class ViewAllComponent implements OnInit { users: any = []; //searchUser; constructor(private adminServiceService: AdminServiceService) { } ngOnInit() { this.a

我需要帮助。每当我的浏览器加载它时,显示错误“GET 400(坏请求)”,但当我点击邮递员时,它工作正常。不明白我缺少什么

组件Ts

})
export class ViewAllComponent implements OnInit {
  users: any = [];
  //searchUser;

  constructor(private adminServiceService: AdminServiceService) { }

  ngOnInit() {
    this.adminServiceService.getUsers()
    .subscribe((data: any) => {
      console.log(data.data);

      this.users = data.data;
      console.log(this.users);
    });
  }

}
组件Html

<div class="container">
  <div class="row">
<!-- <div class="search-user" style="margin:5px;">
<input class="form-control" type="text" name="search" [(ngModel)]="searchUser" autocomplete="off" placeholder="Search By Name">
</div> -->
<div>
  <a [routerLink]="['/register']" class="btn btn-primary" style="margin:5px;">Add New User</a>
</div>

<table class="table table-striped" >
  <thead>
  <tr>
      <td>User Name</td>
      <td>User Email</td>
      <td>User Phone</td>
      <td colspan="2">Actions</td>
  </tr>
  </thead>
<tbody>
    <tr *ngFor="let user of users">
        <td>{{ user.UserName }}</td>
        <td>{{ user.UserEmail }}</td>
        <td>{{ user.userPhone }}</td>

        <td><a href="#" class="fa fa-edit"></a></td>
        <td><a href= "#" class="fa fa-trash"></a>
        <td><a href="#" class="fa fa-eye"></a></td>

        <!-- <td><button type="button" class="btn btn-xs " (click)="approvalPendingRequest(user._id)">
  <i [ngClass]="['fa', user.IsActive ? 'fa-lock' : 'fa-unlock']" aria-hidden="true"></!-->
      <!-- </button> -->
        <!-- </td> -->

    </tr>
</tbody>
</table>
</div>
</div>

Server.js

const express = require("express");
const bodyParser = require("body-parser");
const path = require("path");
const cors = require("cors");
const mongoose = require("mongoose");
const nodemailer = require("nodemailer");
const flash = require("express-flash-messages");
const routers = require("./Router/Router");
const config = require("./DB");
mongoose.Promise = global.Promise;
mongoose.connect(config.DB, { useNewUrlParser: true }).then(
  () => {
    console.log("Database Connected");
  },
  err => {
    console.log("Database is not connected");
  }
);
const app = express();
app.use(flash());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
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();
});
app.use("/api", routers);
let port = process.env.PORT || 4000;
app.listen(port, () => {
  console.log("Listing On Port", +port);
});

const User = require('../Models/User');

exports.allUser = function(req, res){
  User.find({}, function (err, user){
    if (err){
      res.status(400).json({status:false, 'err':err})
    }
    else{
      res.status(400).json({status:true, 'data': user})
    }
  })

}
Controllers.js

const express = require("express");
const bodyParser = require("body-parser");
const path = require("path");
const cors = require("cors");
const mongoose = require("mongoose");
const nodemailer = require("nodemailer");
const flash = require("express-flash-messages");
const routers = require("./Router/Router");
const config = require("./DB");
mongoose.Promise = global.Promise;
mongoose.connect(config.DB, { useNewUrlParser: true }).then(
  () => {
    console.log("Database Connected");
  },
  err => {
    console.log("Database is not connected");
  }
);
const app = express();
app.use(flash());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
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();
});
app.use("/api", routers);
let port = process.env.PORT || 4000;
app.listen(port, () => {
  console.log("Listing On Port", +port);
});

const User = require('../Models/User');

exports.allUser = function(req, res){
  User.find({}, function (err, user){
    if (err){
      res.status(400).json({status:false, 'err':err})
    }
    else{
      res.status(400).json({status:true, 'data': user})
    }
  })

}
路由器

// Get All Users
router.get('/admin/view', viewAllUsersCtrl.allUser)
当我尝试使用http.get运行代码时,它返回400个错误请求。我已经尝试过多次更改http头内容类型,但都没有成功,还有许多其他解决方案的尝试都是徒劳的。请帮助我:(


谢谢!

邮递员工作时,您似乎有一个CORS,但是AJAX请求不起作用。需要做的是:

然后,要启用所有CORS请求:

var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())

app.get('/products/:id', function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for all origins!'})
})

app.listen(80, function () {
  console.log('CORS-enabled web server listening on port 80')
})
更新:

尝试以下方法:

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

io.set('origins', '*:*');

app.use(function(req, res, next) {
  res.header('Access-Control-Allow-Origin', req.get('Origin') || '*');
  res.header('Access-Control-Allow-Credentials', 'true');
  res.header('Access-Control-Allow-Methods', 'GET,HEAD,PUT,PATCH,POST,DELETE');
  res.header('Access-Control-Expose-Headers', 'Content-Length');
  res.header('Access-Control-Allow-Headers', 'Accept, Authorization, Content-Type, X-Requested-With, Range');
  if (req.method === 'OPTIONS') {
    return res.send(200);
  } else {
    return next();
  }
});

server.listen(80);

app.get('/', function (req, res) {
  res.send('OK');
});

io.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});

你能检查一下开发者控制台吗?你的问题可能与corsI有关。我认为问题出在API方面。就我所知,你发布的代码看起来还行……只需执行:
app.use((req,res,next)=>{res.header('Access-Control-Allow-Origin':'我发布了所有代码。启用cors或使用代理:)@DheerajKumar您使用过上面的代码吗?浏览器的控制台怎么说?谢谢你们的支持。我解决了这个问题error@DheerajKumar我很高兴你解决了你的问题。