美文网首页
Node express设置响应头解决跨域

Node express设置响应头解决跨域

作者: Enginner_XZ | 来源:发表于2020-09-12 20:23 被阅读0次

    第一步搭建好环境

    • yarn add express 安装node服务器快速搭建框架express
    设置请求头的方式只能解决get请求的跨域 ,post请求想要实现跨域 需要使用cors插件

    开始编写服务器代码

    const express = require('express'); // 引入express
    const app = express(); // 创建express实例
    
    app.listen( 8080 , 'localhost' , () => { // 配置服务器端口 地址
        console.log('http://localhost:8080');
    })
    
    app.use( ( request , response , next ) => {
        response.header( 'Access-Control-Allow-Origin' , '*') // 跨域最重要的一步 设置响应头
        next(); // 执行next函数执行后续代码
    })
    
    // 接受 /index post请求 返回一个对象
    app.post( '/index' , ( request , response ) => {
        console.log(request.body);
        response.send({
            code : 200,
            msg : '请求成功'
        })
    })
    

    封装ajax请求

    const GetIndex = ( api , type , data ) => {
        $.ajax({
            url : 'http://localhost:8080'+ api, // 设置请求地址
            type : type, // 设置请求类型
            data : data, // 设置请求携带的参数
            success : response => { // 成功的回调函数
                successfn(response) // 调用外面的函数将数据传递出去
            }
        })
    }
    

    调用请求

    GetIndex( '/index' , 'POST' , { id : '12' , name : 'xiaozhi'} ) 
    
        function successfn(res){
            console.log(res);
            let h1 = document.createElement('h1');
            h1.innerText = res.msg;
            document.body.appendChild(h1);
        }
    

    最终结果

    image.png

    相比较设置响应头 更好的办法是使用cors插件

    yarn add cors 先下载cors插件

    const express = require('express');
    let app = express();
    const bodyParser = require('body-parser');
    const cors = require('cors'); // 引入cors插件
    
    app.listen( 9090 , 'localhost' , () => {
        console.log(' http://localhost:9090 ');
    })
    
    // app.use('/' , express.static('./src'));
    // app.use( ( request , response , next ) => {
    //     response.header('Access-Control-Allow-Origin' , '*');
    //     next();
    // })
    app.use(cors()) // 通过中间件的方式使用cors插件 解决跨域问题
    app.use(bodyParser.urlencoded( { extended : false }));
    
    app.post('/index' , ( request , response ) => {
        console.log(request.body);
        response.send({
            code : 200,
            msg : '请求成功',
        })
    })
    
    app.get( '/page' , ( request , response ) => {
        console.log(request.query);
        response.send( {
            code : 200 ,
            msg : '请求成功'
        })
    })
    

    相关文章

      网友评论

          本文标题:Node express设置响应头解决跨域

          本文链接:https://www.haomeiwen.com/subject/bqfgektx.html