最近项目中需要实现文件上传的功能,前台是用extjs写的,后台接口是调用的另一个项目组之前已有的接口。本来是一件很简单的事情,但是由于extjs的ajax请求方式无法实现跨域访问,而使用submit表单提交请求又会造成页面跳转,非要修改之前的接口才行。最后被这个问题折磨了两天,现在终于用代理的方式解决了。即在本项目中写一个接口作为代理,在这个接口里请求另一个项目的接口。前台直接访问本项目的接口即可。代理访问接口的java核心代码如下:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://xxx.xx.xxx.xx:8080/upload_serve/upload/execute.do");
FileBody fileBody=new FileBody(image);
StringBody stringBody1=new StringBody(relateId+fileName);
StringBody stringBody2=new StringBody("EqU3RkKB4PTLM3W8J4U9gVttPwv3Zi");
MultipartEntity reqEntity = new Mul