用jsonp实现跨域
@ApiOperation(value = "Test vehicle param info")
@RequestMapping(method = RequestMethod.GET, value = {
"/api/1.0/ups/test",
}, produces = APPLICATION_JSON_UTF8_VALUE,headers ={"Accept=" + APPLICATION_JSON_UTF8_VALUE})
public void test(HttpServletRequest request, HttpServletResponse response)throws Exception{
response.setContentType("text/plain");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setHeader("Access-Control-Allow-Origin", "*");//添加跨域访问
Map
result = new HashMap
();
Map
data=new HashMap
();
ObdParam param=obdParamRepository.getParams().get(0);
data.put("obdParam",param);
String jsonpCallback = request.getParameter("callback");//客户端请求参数
try {
// String test=request.getParameter("test");
result.put("errorCode", "0");
result.put("errorMessage","success!");
result.put("data",data);
} catch (Exception e) {
e.printStackTrace();
}finally {
PrintWriter out = response.getWriter();
Gson gson=new Gson();
String json = gson.toJson(data);
// JSONObject resultJSON = JSONObject.fromObject(result); //根据需要拼装json
// out.println(jsonpCallback+"("+resultJSON.toString(1,1)+")");//返回jsonp格式数据
System.out.print(jsonpCallback+"("+json.toString()+")");
out.println(jsonpCallback+"("+json.toString()+")");//返回jsonp格式数据
out.flush();
out.close();
}
}
<script type="text/javascript">
jQuery(document).ready(function(){
$.ajax({
type : "get",
async:false,
url : "http://192.168.0.187:8080/services/api/1.0/ups/test",
dataType : "jsonp",
// data:"{}",
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
jsonpCallback:"jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
success : function(data){
$("#p1").text(data.obdParam.intakePressure);
$("#p2").text(data.obdParam.throttlePosition);
$("#p3").text(data.obdParam.timingAdvance);
$("#p4").text(data.obdParam.engineLoad);
$("#p5").text(data.obdParam.fuelLevel);
$("#p6").text(data.obdParam.vehicleSpeed);
$("#p7").text(data.obdParam.engineRpm);
$("#p8").text(data.obdParam.coolantTemp);
$("#p9").text(data.obdParam.intakeairTemp);
$("#p10").text(data.obdParam.massairRate);
$("#p11").text(data.obdParam.dtc);
},
error:function(XMLHttpRequest, textStatus, errorThrown){
console.error(XMLHttpRequest.status);
console.error(XMLHttpRequest.readyState);
console.error(textStatus);
}
});
});
</script>