Angular4 JSONP + JAVA代码
一、在app.module.ts模块中,注入JsonpModule模块
import {JsonpModule} from "@angular/http";
@NgModule({
imports: [
JsonpModule //注入JSonpModule模块
]
})
二、创建服务httpService,并注入jsonp和map(分装好的服务 可以直接调用)
import {Injectable} from '@angular/core';
import {Jsonp, URLSearchParams} from "@angular/http";
@Injectable()
export class HttpService {
private jsonpTimes = 0; // 用于记录jsonp请求的次数
constructor(private jsonp: Jsonp) {
}
jsonpGet(apiURL, req){
let params = new URLSearchParams();
//设置参数
for (let key in req) {
params.set(key, req[key]);
}
params.set('format', 'json');
params.set("callback", `__ng_jsonp__.__req${this.jsonpTimes}.finished`);
this.jsonpTimes++;
let request = this.jsonp.get(apiURL, { search: params })
.map((res) => {
let response = res.json();
return response;
});
return request;
}
}
三、业务组件调用httpService
this.httpService.jsonpGet(newUrl, req).subscribe(data => {
let result = data.data;
});
后端JAVA代码
@RequestMapping(value = "mergeJson")
public void exchangeJson(HttpServletRequest request,HttpServletResponse response) throws Exception {
String businessnum = request.getParameter("businessnum");
String paths = request.getParameter("paths");
List<String> pathList = Arrays.asList( paths.split(",")); List<String> resultPath = mergeService.merge(businessnum, pathList);
String return_JSONP = String.join(",", resultPath);
String jsonCallback = request.getParameter("callback"); //jsonpCallback 客户端请求参数
Map<String,Object> map = new HashMap<>();
map.put("data",return_JSONP);
JSONObject resultJSON = new JSONObject(map);//根据需要拼装json PrintWriter pw = response.getWriter();
pw.write(jsonCallback+"("+resultJSON+")");
pw.close();
pw = null;
}
参考资料:https://www.cnblogs.com/minigrasshopper/p/7692368.html
Angular4 JSONP + JAVA代码的更多相关文章
- 对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
- 怎样编写高质量的java代码
代码质量概述 怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友 ...
- 数据结构笔记--二叉查找树概述以及java代码实现
一些概念: 二叉查找树的重要性质:对于树中的每一个节点X,它的左子树任一节点的值均小于X,右子树上任意节点的值均大于X. 二叉查找树是java的TreeSet和TreeMap类实现的基础. 由于树的递 ...
- java代码的初始化过程研究
刚刚在ITeye上看到一篇关于java代码初始化的文章,看到代码我试着推理了下结果,虽然是大学时代学的知识了,没想到还能做对.(看来自己大学时掌握的基础还算不错,(*^__^*) 嘻嘻……)但 ...
- JDBC——Java代码与数据库链接的桥梁
常用数据库的驱动程序及JDBC URL: Oracle数据库: 驱动程序包名:ojdbc14.jar 驱动类的名字:oracle.jdbc.driver.OracleDriver JDBC URL:j ...
- 利用Java代码在某些时刻创建Spring上下文
上一篇中,描述了如何使用Spring隐式的创建bean,但当我们需要引进第三方类库添加到我们的逻辑上时,@Conponent与@Autowired是无法添加到类上的,这时,自动装配便不适用了,我们需要 ...
- lombok 简化java代码注解
lombok 简化java代码注解 安装lombok插件 以intellij ide为例 File-->Setting-->Plugins-->搜索"lombok plug ...
- 远程debug调试java代码
远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...
- 几种简单的负载均衡算法及其Java代码实现
什么是负载均衡 负载均衡,英文名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助.通过某种负载分担技 ...
随机推荐
- xlwings: Write Excel macro using python instead of VBA
i want to write Excel macros to deal with the data, but i am not familiar with VBA language. so i de ...
- 如果Android的jar包导入错误,怎么修改呢?
如果jar包导入错误,怎么修改呢? 右键工程---->properties---->Java Build Path --->Libraries-->选择android-supp ...
- Angular2 前端代码规范
不要重置对象的引用!(重置只应该在组件或服务的初始化时) why:会使页面产生闪烁 不要给图片绑定一个空的值或空的图片引用(如果值从服务器异步过来,那应该在初始化时给它一个默认值)why:会触发一个4 ...
- 网页入口ControlServlet分析
init() configureBsf(); //配置自定义bsf,即在bean script中注册ofbiz实现的脚本引擎 getRequestHandler(); //初始化request han ...
- SAP C/4HANA Sales Cloud使用OData服务和第三方系统集成的一个具体例子
出于工作需要,Jerry写了这篇文章,给某些Partner做参考. 以前Jerry曾经介绍过SAP C/4HANA的五朵云到底包含哪些具体产品,其实在SAP官网上有更权威的中文解释: https:// ...
- mysql 查询大量数据报错
错误:Incorrect key file for table '/tmp/#sql_... 由于一次查询出大量数据,并且使用了临时表,导致产生此错误,主要是存放临时表文件的/tmp目录大小不足导致.
- sort给文件按照大小排序
ls -l|sort -n -k5 -n 表示以数值排序-k5 表示以第几列排序还可以用 -t参数指定行内容的分隔符 参考链接:http://www.cnblogs.com/myd620/p/6002 ...
- BZOJ1002:[FJOI2007]轮状病毒(找规律,递推)
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下 ...
- SSD 单发多框检测
其实现在用的最多的是faster rcnn,等下再弄项目~~~ 图像经过基础网络块,三个减半模块,每个减半模块由两个二维卷积层,加一个maxPool减半(通道数依次增加[16,32,64]) 然后是多 ...
- PHP语言开发微信公众平台(订阅号)之curl命令(补充)
在之前的一篇随笔中,博主在调用curl命令上传文件时会经常出现上传方法过时的情况.如下图所示: 所以,我们只需要把上传方法换成创建CURLFile 类即可.如下所示 $ch = curl_init() ...