node.js+express如何跨域访问数据?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这里有两个服务器,一个的地址是
192.168.9.125
,端口号是8888
,另一个服务器的地址是127.0.0.1
,端口号是7777
。你的代码app.all
只是修改了前一个服务器的header
,shuju.txt
是在后一个服务器上,当然不可能有前一个服务器的header
。每种文件类型都有自己独特的
Content-Type
,你给所有文件包括css
文件加上application/json
的Content-Type
,样式就无法显示了。正确的做法是给不同类型的文件不同的Content-Type
头部。