首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >routes.js中的Access-Control-Allow-Origin

routes.js中的Access-Control-Allow-Origin
EN

Stack Overflow用户
提问于 2018-12-08 00:02:33
回答 1查看 0关注 0票数 0

我已经使用了iternet的一些代码到我的项目中。但我不清楚为什么他们使用“Access-Control-Allow-Origin”,“*”声明。该声明是否应该被要求?我们不能忽视这种说法吗?使用此声明的确切原因是什么?谢谢。

//route.js

代码语言:javascript
复制
const Express= require('express');
const router=  Express.Router();

const Controller= require('../controller/Controller');

router.get('/getBook', function (req,res) {
    Controller.getBook().then(function (data) {
        res.header("Access-Control-Allow-Origin", "*");
        res.status(data.status).send({allBook: data.bookData})
    }).catch(function (err) {
        res.status(err.status).send({message: err.message})
})
});

router.post('/createBook', function (req,res) {
    Controller.createBook(req.body).then(function (data) {
        res.header("Access-Control-Allow-Origin", "*");
        res.status(data.status).send({message: data.Message})
    }).catch(function (err) {
        res.status(err.status).send({message: err.message})
    })
});

router.get('/getBook/author', function (req,res) {
    Controller.searchBook(req.query.name).then(function (data) {
        res.header("Access-Control-Allow-Origin", "*");
        res.status(data.status).send({searchedBooks: data.bookData})
}).catch(function (err) {
res.status(err.status).send({message: err.message})
})
});

module.exports=router;

这是我使用mongoose创建数据库模式的代码,我想创建一个名为price的属性,数据类型为double。但它无效。适合的数据类型是什么?//dbConfig.js

代码语言:javascript
复制
var mongoose= require('mongoose');
    const  schema= mongoose.Schema;

    const bookSchema = schema({
        name:String,
        price:Double,
        author:String
    })

    mongoose.model('books',bookSchema);

    mongoose.connect('mongodb://127.0.0.1:27017/Library', function (err) {
        if(err){
            console.log("connection failed");
            process.exit(-1);
        }console.log("Database established successfully");
    })

    module.exports=mongoose;

//app.js

代码语言:javascript
复制
const Express= require('express');
const app= Express();
const bodyparser= require('body-parser');
const route= require('./routes/route');

app.use(bodyparser.json());
app.use('/',route);

app.listen(8083,'localhost',function (err) {
    if(err){
        console.log("Connection Failed");
        process.exit(-1);
    }console.log("Listening to port 8083");
})
EN

回答 1

Stack Overflow用户

发布于 2018-12-08 09:19:47

由于原始策略相同,浏览器通常会阻止对作为原始域的其他域的所有通信

使用CORS标头,浏览器被告知域允许来自antoher来源。

当您从同一个域提供内容时,您不必担心CORS标头。当您希望从其他域调用您的快速应用程序时,您必须处理跨源资源共享。

更具体:

  • 您的应用程序在http://example.com上提供,所有来电均来自一个也在http://example.com上运行的网站,您无需处理此标题
  • 您的应用程序在http://api.example.com上提供,来电来自http://example.com或http://www.example.com甚至https://api.example.com您(其他协议) )必须发送一个CORS标题Access-Control-Allow-Origin: http://www.example.com
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档