angular与SpringMVC项目 跨域请求
来源:互联网 发布:试点网络学校基础 编辑:程序博客网 时间:2024/04/29 20:10
一、springMVC后台操作:
1.注解:
@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface SetCORNResponseHeader {}2.springMVC point
public class ResponseHeaderAdvice implements AfterReturningAdvice {@Overridepublic void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable {if (method.getAnnotationsByType(SetCORNResponseHeader.class).length>0) {for (Object arg : args) {if (arg instanceof HttpServletResponse) {((HttpServletResponse) arg).setHeader("Access-Control-Allow-Origin", "*");return;}}}}}
3.配置
<bean id="responseHeaderAdvice" class="com.bio.framework.util.spring.ResponseHeaderAdvice"/><aop:config ><aop:pointcut id="pointcutController"expression="execution (* com.bio..api.*Api.*(..))" /><aop:advisor advice-ref="responseHeaderAdvice" pointcut-ref="pointcutController" /></aop:config>
4.Controller使用
@ResponseBody@RequestMapping(value = "svcApplyShow", method = RequestMethod.POST, produces = "application/json")@SetCORNResponseHeaderpublic String[] svcApplyShow(HttpServletRequest request, HttpServletResponse response) throws IOException, InstantiationException, IllegalAccessException {List<SvcApply> list2 = convertToList(request, SvcApply.class);System.out.println(list2);String[] aaa = { "ni hao", "12", "你好" };return aaa;}@ResponseBody@RequestMapping(value = "svcApplyShowGet", method = RequestMethod.GET)@SetCORNResponseHeaderpublic String[] svcApplyShowGet(Integer applyId, HttpServletResponse response) {Map<String, Object> map = new HashMap<>();SvcApply svcApply = svcApplyManager.getById(applyId);map.put("svcApply", svcApply);if (ObjectUtils.isNotEmpty(svcApply.getFamilyId())) {LpsFamily lpsFamily = lpsFamilyManager.getById(33);map.put("lpsFamily", lpsFamily);}List<SvcProject> list = svcProjectManager.getAllObjects();String[] aaa = { "ni hao", "12", "你好" };return aaa;}public <T> T convertToClass(HttpServletRequest request, Class<T> c)throws InstantiationException, IllegalAccessException {Map map = request.getParameterMap();Set keys = map.keySet();T t = c.newInstance();for (Object key : keys) {JSONObject jsonObject = JSONObject.fromObject(key);t = (T) JSONObject.toBean(jsonObject, t.getClass());}return (T) t;}public <T> List<T> convertToList(HttpServletRequest request, Class<T> c)throws InstantiationException, IllegalAccessException {Map map = request.getParameterMap();Set keys = map.keySet();T t = c.newInstance();List<T> list=new ArrayList<T>();for (Object key : keys) {JSONArray jsonArray = JSONArray.fromObject(key);list = (List<T>) JSONArray.toCollection(jsonArray, t.getClass());}return list;}
二、angular跨域请求post
$http({ method: "post", url: "XXX/svcApplyShow.do", data: myBuilding, headers: { 'Content-type': 'application/x-www-form-urlencoded;charset=utf-8' } });
三、restangular跨域请求
1.config配置
//配置restangularProvider请求路径 RestangularProvider.setBaseUrl('XXX/app'); //设置后缀 RestangularProvider.setRequestSuffix('.do'); //post跨域请求配置 RestangularProvider.setDefaultHeaders({'Content-type': 'application/x-www-form-urlencoded;charset=utf-8'});
2.get请求
Restangular.one('svcApplyShowGet').get({applyId:1});
3.post请求
return Restangular.one('').post('svcApplyShow',{applyId:1,aaa:"12"});
四、转换类
package com.bio.web.fw.util;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class ConvertUtil {private static Object getFirstObject(Set keys) {Object obj = new Object();for (Object key : keys) {obj = key;}return obj;}public static <T> T convertToClass(HttpServletRequest request, Class<T> c)throws InstantiationException, IllegalAccessException {Map map = request.getParameterMap();T t = c.newInstance();JSONObject jsonObject = JSONObject.fromObject(getFirstObject(map.keySet()));t = (T) JSONObject.toBean(jsonObject, t.getClass());return (T) t;}public static <T> List<T> convertToList(HttpServletRequest request, Class<T> c)throws InstantiationException, IllegalAccessException {Map map = request.getParameterMap();T t = c.newInstance();List<T> list = new ArrayList<T>();JSONArray jsonArray = JSONArray.fromObject(getFirstObject(map.keySet()));list = (List<T>) JSONArray.toCollection(jsonArray, t.getClass());return list;}public static Integer[] convertToIntegerArray(HttpServletRequest request)throws InstantiationException, IllegalAccessException {Map map = request.getParameterMap();JSONArray jsonArray = JSONArray.fromObject(getFirstObject(map.keySet()));Integer[] intarray = (Integer[]) JSONArray.toArray(jsonArray, Integer.class);return intarray;}public static String[] convertToStringArray(HttpServletRequest request)throws InstantiationException, IllegalAccessException {Map map = request.getParameterMap();JSONArray jsonArray = JSONArray.fromObject(getFirstObject(map.keySet()));String[] strarray = (String[]) JSONArray.toArray(jsonArray, String.class);return strarray;}}
五、另一种跨域配置IONIC跨域配置http://ionichina.com/topic/54f051698cbbaa7a56a49f98
在ionic.project中配置{ "name": "项目名称", "app_id": "", "gulpStartupTasks": [ "sass", "watch" ], "watchPatterns": [ "www/**/*", "!www/lib/**/*" ] , "proxies": [ { "path": "/aa/bb/api", "proxyUrl": "http://172.28.11.1:8088/aa/bb/api" } ]}RestangularProvider.setBaseUrl("http://localhost:8100/aa/bb/api");RestangularProvider.setRequestSuffix(".do");
1 0
- angular与SpringMVC项目 跨域请求
- Angular开发(十四)-利用angular的http转发、即代理http 请求,处理项目中请求跨域的问题
- Springmvc 跨域请求
- jquery ajax 和 angular 跨域请求
- angular +ionic app跨域请求
- springMVC解决跨域请求
- JQueryAjax+SpringMVC跨域请求
- springMVC解决跨域请求
- springMVC解决跨域请求
- $http——ajax跨域请求的angular方式
- 基于angular-cli配置代理解决跨域请求问题
- angular跨域的ajax--json数据请求
- angular的http请求本地文件出现跨域提醒
- springMVC如何跨域请求-jsonp
- springMVC实现jsonp的跨域请求
- Springmvc 支持 cors跨域请求
- ajax+springmvc实现跨域请求
- SpringMVC + JSONP的跨域请求
- ArrayList扩容问题
- 解析几何:第三章 平面上的直线
- Install sharelatex on virtual machine
- Spark代码4之Spark 文件API及其对搜狗数据的操作
- hair gene (news)
- angular与SpringMVC项目 跨域请求
- UITableView或UIScrollView的content截屏
- iOS缓存
- 改变软件的样式风格的一些思路
- android布局中的基本属性:
- 解析几何:第四章 空间中的直线与平面(1)空间直线的方向、平面方程、空间直线方程
- MySQL与JDBC连接
- GVIM配置NerdTree
- Notes of Hinton's lecture