node后端跨域和express

启服务:vscode右键 Run Code,或者cmd里 node server.js

终止服务:vscode输出栏右键 Stop Code Run
如果忘记终止切换项目了,需要在cmd里:
netstat -ano | findstr :3000 记录最右边的PID
taskkill /PID 4496 /F 终止进程

express服务
//解决跨域问题,浏览8080&服务3070
let express = require('express');
let app = express();
let port = 3070;
//创建服务
app.listen(port,()=>{
    console.log(`服务创建成功,正在监听${port}端口!`);
});
。。。
app.use((req,res,next)=>{
    //可写res.header也可写res.setHeader
    res.setHeader("Access-Control-Allow-Origin", "http://localhost:8080");//跨域不能写*通配符,8080和config/index.js里的port匹配的
    res.setHeader("Access-Control-Allow-Credentials", true);//访问控制允许凭据,必须有
    res.setHeader("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
    res.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.setHeader("X-Powered-By",' 3.2.1')//可有可没有
    if(req.method == "OPTIONS") {
        //让options请求快速返回,res.send改成res.sendStatus
        res.sendStatus(200);
        return;
    };
    next();
});
。。。
http服务 let http
= require("http");//创建服务 。。。 //req请求,res响应 http.createServer((req,res)=>{//创建一个服务 //解决跨域问题,浏览8080&服务3070 res.setHeader("Access-Control-Allow-Origin", "*"); res.setHeader("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With"); res.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.setHeader("X-Powered-By",' 3.2.1') if(req.method=="OPTIONS") return res.end();/*让options请求快速返回*/ 。。。 }).listen(3070);//监听一个端口

 

jq获取xml文件,跨域需后端设置

$.ajax({
        type: "GET",
        url: "http://ddebugv3.xxxx.com/epc_svg/C3D_1S10411720116_OK_CN.interactivity.xml",
        dataType: "xml",
        success: (msg) => {
            console.log(1,msg)
        },
        error: function (msg) {
            console.log(2,msg);
        }
    });

 

posted @ 2023-03-31 15:48  石头记1  阅读(37)  评论(0)    收藏  举报