目录
tiips:如嫌繁琐,直接移步总结即可!
一、问题
1.npm run dev运行项目时,编译器控制台报错:[HPM] Error occurred while trying to proxy request /uaa/token from 10.13.0.26:8081 to http://0.13.0.30:7311/dss/ (ENETUNREACH) (https://nodejs.org/api/errors.html#errors_common_system_errors);接口报错500
2.真是奇怪呀,之前都好好的,怎么今天只改了一下ip地址就报错。 ENETUNREACH大概意识是:网络不可达;报错就是:proxy代理请求时,发现地址b不可达。
3.本来不想管的,因为大部分500的错误都是服务器(后端)有问题,但是后端说他没有问题,我也感觉很奇怪,之前编译器控制台都不会有报错呀,所以不得不排查。
二、原因及解决方法
1.原因:proxy代理中的target有部分地址写错了 ~##~ 少了一个双引号;
项目原本写的代理是从这个变量截取了一部分。少了双引号截取到的结果ip地址就少了一部分,如上面报错:我想访问的服务器是; http://10.13.0.30:7311/dss/r,结果变成了 http://0.13.0.30:7311/dss/。
最终导致proxy代理错误:本来接口请求应该是http://10.13.0.30:8081/api/uaa/token,现在的请求地址却是:http://10.13.0.26:8081/api/uaa/token
诶呀,target地址有一部分是外部配置的,以前修改的时候都是复制过来,再修改ip为我想要连接的地址就可以了。
今天意外的没有复制,自己写了一行,结果出问题了。
2.解决方法
添加双引号:API_ROOT:'"10.13.0.30:7311/dss/r"'
三、总结
1.看来写代码也要入乡随俗呀,否则可能因为一个双引号、一个空格等小问题引起难以预料的大问题
2.我很好奇,为啥前面的人要这样写,直接一个字符串不就可以了,也没有其他地方用到呀。而且亲测proxy配置不截取字符串,直接配置API_ROOT为字符串是没有问题的;如有大佬知道,欢迎评论区告知!
3.proxy代理报错:ENETUNREACH一般是 proxy target地址有误,请仔细检查target是否写对了。TIMEOUT有可能是proxy target地址有误,或者请求的服务器没有打开
/*
希望对你有帮助!
如有错误,欢迎指正,非常感谢!
*/