JS跨域:2.解决方案之-设置回调参数
2024-09-22 00:57:16
一 服务器端代码
package com.cn; import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
@RequestMapping("/data/inteface")
public class CSDNTest {
@RequestMapping("/getdata")
public void getSolrArticleen(String parameter,
HttpServletRequest request, HttpServletResponse response) throws Exception{
String callback = request.getParameter("jsoncallback");
parameter = new String(parameter.getBytes("iso-8859-1"), "utf-8");
//获取数据
DataRepository dataRepository = new DataRepository();
List<String> primaryItems = dataRepository.getData();
//把获取的数据转换成字符串,这里用的是FastJson,也可以根据需要用Gson
String jsonArticle = JSONObject.toJSONString(primaryItems,
SerializerFeature.DisableCircularReferenceDetect);
//把需要输出的服务器端的字符串拼接callback头
String json = callback+"(" + jsonArticle + ")";
//输出到客户端
GetOut.getWriter(json, response);
}
}
二 获取输出流的代码
package com.cn; import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
/**
*
* @Title: GetOut.java
*
* @Package: com.cn
*
* @Company: WiiMedia
*
* @Description: 获取输出流
*
* @author: SongJia
*
* @date: 2016-06-27 上午11:09:27
*
*/
public class GetOut {
public static PrintWriter getWriter(String msg,HttpServletResponse response) throws IOException{
response.setContentType("text/html;charset=utf-8");
PrintWriter out = null;
out = response.getWriter();
out.write(msg);
out.flush();
out.close();
return out;
}
}
三 客户端请求数据代码
<script type="text/javascript">
function AcquireData() {
$.ajax({
async:false,
url: "http://m.lecoonginfo.com/data/inteface/getdata, // 跨域URL
type: 'GET',
dataType: 'jsonp',
jsonp: 'jsoncallback', //默认callback
timeout: 5000,
success: function (json) {
//客户端jquery预先定义好的callback函数,
//成功获取跨域服务器上的json数据后,
//会动态执行这个callback函数
console.log(json);
}
}
});
</script>
最新文章
- android dialog 有关token的问题
- Atitit 团队建设的知识管理
- Maven 自动部署
- 兼容iOS 10 资料整理
- LAMP的安装
- UWP 显示图片到Image控件
- Linux定义变量的脚本
- java基础语法3
- PAT1046: Shortest Distance
- django 标签的使用
- 在Java中使用redisTemplate操作缓存
- try{s.send(t.hasContent&;&;t.data||null)}catch(e){if(n)throw e}}引发的惨案
- python框架之Django(15)-contenttype模块
- H5学习的例子
- git 一些基本的命令操作总结
- python3 判断字符串是否为IP
- Java - 18 Java Scanner 类
- 工作流调度器azkaban2.5.0的安装和使用
- 设置 cookie过期时间
- http://bbs.csdn.net/topics/392028373