This question already has answers here:
How does Access-Control-Allow-Origin header work?
(14个回答)
CORS issue doesn't occur when using POSTMAN
(1个答案)
2年前关闭。
我在node.js中拥有服务器端构建而在angular中具有客户端构建并创建API POST和GET的问题,请向我展示Cors问题
这是客户端角度
问题向我显示此消息,“请求的资源上没有'Access-Control-Allow-Origin'标头”错误。
(14个回答)
CORS issue doesn't occur when using POSTMAN
(1个答案)
2年前关闭。
我在node.js中拥有服务器端构建而在angular中具有客户端构建并创建API POST和GET的问题,请向我展示Cors问题
这是客户端角度
import { Component, OnInit } from '@angular/core';
import { Http, Response } from "@angular/http";
import { Router } from '@angular/router';
import { HttpClient , HttpClientModule , HttpHeaders } from '@angular/common/http';
@Component({
selector: 'app-root',
templateUrl: './app.login.html',
styleUrls: ['./app.login.css'],
})
export class AppComponent {
title = 'app';
constructor(private http: Http){
this.LogIn();
this.ping();
}
LogIn() {
return this.http.post("localhost:3000/api/login/checklogin", {
username: 'mohsen',
password: '2345'
})
.subscribe(
res => {
console.log(res.json());
},
err => {
console.log("Error occured")
}
);
}
const express = require('express');
const router = express.Router();
var app = express();
const listUsers = [
{"username" : "wael", "password" : "1234"},
{"username" : "mohsen", "password" : "2345"}
];
router.get('/ping.json' ,(req, res, next) => {
res.status(200).json({
message: 'pong'
});
});
// router.post('/checklogin',(req, res ,next) =>{
router.post('/checklogin',(req, res ,next) =>{
console.log(req.body);
for(let i =0 ; i <listUsers.length ; i ++){
console.log(listUsers[i]);
if(listUsers[i].username === req.body.username && listUsers[i].password === req.body.password){
res.status(200).json({
message: "Success"
});
return;
}
}
// not found
res.status(200).json({
message: "Failed"
});
});
问题向我显示此消息,“请求的资源上没有'Access-Control-Allow-Origin'标头”错误。
最佳答案
发生这种情况是因为Postman没有发送Option
请求来检查Cors策略。 More information here。
您可以使用Express中的CORS启用它。
const express = require('express');
const router = express.Router();
var cors = require('cors');
var app = express();
app.use(cors())
const listUsers = [
{"username" : "wael", "password" : "1234"},
{"username" : "mohsen", "password" : "2345"}
];
router.get('/ping.json' ,(req, res, next) => {
res.status(200).json({
message: 'pong'
});
});
// router.post('/checklogin',(req, res ,next) =>{
router.post('/checklogin',(req, res ,next) =>{
console.log(req.body);
for(let i =0 ; i <listUsers.length ; i ++){
console.log(listUsers[i]);
if(listUsers[i].username === req.body.username && listUsers[i].password === req.body.password){
res.status(200).json({
message: "Success"
});
return;
}
}
// not found
res.status(200).json({
message: "Failed"
});
});