文件上传的URL地址,在内网和外网中的配置区别

项目中有多处文件上传,在内网中测试没有问题,可以上传成功,但是在外网环境下,无法使用。

内网环境中,项目运行启用 nodejs 反向代理,将 app 指向 'http://12.12.12.12:8888/app/'

代码如下:

var formData = new FormData();

formData.append('file', ele.files[0]);

$http({

  method: 'POST',

  url: 'http://12.12.12.12:8888/app/api/upfile',   //该IP为内网连接的后台IP

  data: formData,

  headers: {'Content-Type': undefined},

  transformRequest: angular.identity

}).successful( res => {

  console.log(res);

});

报错:400 Bad Request

解决:在外网连接时,将 url 地址换成  '/app/api/upfile' 即可

原因:在内网中,文件上传使用带 IP 的 url ,反向代理地址到后台是可实现的;但是如果使用不带 IP 的 url,在发起请求的时候,浏览器会自动在请求 Request URL 中加上前缀 'localhost:8888',此时本地 IP无法代理访问后台服务器

 

posted @ 2017-12-21 19:04  Ada·Gao  阅读(782)  评论(1编辑  收藏  举报