java远程调用接口(post方法)之extjs跨域访问

本文介绍了一种解决ExtJS跨域访问问题的方法,通过在Java后端创建代理接口,绕过跨域限制。在项目中,由于ExtJS的AJAX请求无法直接跨域,使用表单提交会导致页面跳转。为了解决这个问题,作者在本地项目中实现了一个代理接口,该接口转发请求到另一项目组的文件上传接口。关键的Java代码涉及HttpClient、HttpPost和MultipartEntity,用于构造并发送包含文件和参数的POST请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目中需要实现文件上传的功能,前台是用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 MultipartEntity(); 
reqEntity.addPart("image",fileBody);
reqEntity.addPart("accessKey",stringBody2);
reqEntity.addPart("fileNameForSave",stringBody1);
 httppost.setEntity(reqEntity);  
HttpResponse response = httpclient.execute(httppost); 
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == HttpStatus.SC_OK){  
tip="success";
System.out.println("上传成功");
        }  
else
tip="error";


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值