node.js vue 遇到的坑杂记

首先我是为了我们gm工具写的网页,我个人而言也是一个后端程序员,所以不考虑任何好看相关,要求就是在火狐或谷歌浏览器上能用就行。虽然vue支持的很好。

已拦截跨源请求:同源策略禁止读取位于 XXXX 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')

这个错误是:网页地址,和ajax请求的地址不一致就会报这个错误。解决方式为,我没解决,用了nginx代理,把地址整合为一个,都一个地址了,自然不会报这个错误。

nginx代理本地端口

       原来nginx目录下的conf/nginx.conf的内容,原本的部分

location / {
    root   html;
    index  index.html index.htm;
}

改为就相当于代理了3000端口的服务

location / {
     proxy_pass http://localhost:3000; 
}

然后可以再加一个 location

location /api/ {
     proxy_pass http://localhost:3001; 
}

这样带有api路径的请求,都会到达3001端口的本地服务

ajax请求

用的是axios,这是我下载的模板里附带的,直接贴代码

import axios from 'axios';

const service = axios.create({
    // easy-mock服务挂了,暂时不使用了
    baseURL: 'http://localhost/api',
    timeout: 5000
});

export default service;
export const fetchData = query => {
    return request({
        url: './t',
        method: 'get',
        params: query
    });
};
const query = reactive({
	u: param.username,
	w: param.password,
});
var data = fetchData(query).then((res) => {
	alert(res.a);
});

服务器代码(spring cloud)


	@ResponseBody
	@RequestMapping(value = "server/t")
	public String test2(String u, String w) {
		System.out.println(u);
		System.out.println(w);
		return "{\"a\": 4}";
	}

请求参数名字一致,就能获取到,返回值是一个json

component: () => import("")加载

如果按照以下写法是没有问题的

permits.forEach((permit) => {
	pagesUse.push({
		//这里应当是别的线程,permit能用 ,permits[i]会报找不到
		component: () => import(permit.webpageChunk),
	});
});
for (var i = 0; i < permits.length; i++) {
	var permit = permits[i];
	//console.log(permit.webpageChunk);
	//这里是别的方法也行,应该是js的机制问题
	addPermit(pagesUse, permit);
}

这两个写法都是可以,原因是,这个方法调,把变量用复制到了别的方法内,相当于保存了变量数据。但是下边写法,所有页面就会是最后的页面,这种写法直接用数组,甚至会报错找不到数据。

TypeError: permits[i] is undefined

for (var i = 0; i < permits.length; i++) {
   var permit = permits[i];
   component: () => import(permit.webpageChunk),
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值