node.js+express如何跨域访问数据?

发布于 2022-09-06 01:01:49 字数 1447 浏览 7 评论 0

node.js+express如何跨域访问数据

app.all('*',function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1');
    //res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

$.ajax({
    url:'http://127.0.0.1:7777/public/shuju.txt',
    dataType: "jsonp",
    //contentType:'text/plain',
    type:'get',
    success: function (res) {
        console.log(res);
    }
});

问题1:
比如main.css响应头刚好是app.all()里面设置的那样子;
图片描述

但为什么ajax中url地址返回来去不是设置好的样子。
图片描述

问题2:
我查了好多资料app.all()里面设置头信息都有这句res.header("Content-Type", "application/json;charset=utf-8");但是我加上这句,页面样式失效。这个页面路由如下:

router.get('/cases',function (req,res,next) {
    res.header("Content-Type", "text/html;charset=utf-8");
    res.render('cases',{
        'navname': 'cases',
        'navs':navs
    });
});

注释掉这句res.header("Content-Type", "application/json;charset=utf-8");会对返回结果有什么影响嘛?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

场罚期间 2022-09-13 01:01:49

这里有两个服务器,一个的地址是192.168.9.125,端口号是8888,另一个服务器的地址是127.0.0.1,端口号是7777。你的代码app.all只是修改了前一个服务器的headershuju.txt是在后一个服务器上,当然不可能有前一个服务器的header

每种文件类型都有自己独特的Content-Type,你给所有文件包括css文件加上application/jsonContent-Type,样式就无法显示了。正确的做法是给不同类型的文件不同的Content-Type头部。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文