1、前端js
1、参数定义:
var sendJSONP = function(url){
var settings = {
url:url,
type:"GET",//JSONP下只能GET
dataType:"jsonp",
async:false,//同步请求,在JSONP下无效
jsonp: "callback",//指定参数名
jsonpCallback: "jsonp",//指定回调函数名,参数名和回调函数名在url中会被拼接成..&callback=jsonp&..
headers: {'Content-Type': 'application/json;charset=utf-8'}
}
return promising_ajax(url,settings);
}
2、promise定义:
var promising_ajax = function(url, settings) {
settings = settings || {};
return new Promise(function(resolve, reject) {
settings.success = function(data, status, jqXHR) {
resolve(data);
};
settings.error = function(jqXHR, status, error) {
reject(wrap_ajax_error(jqXHR, status, error));
};
ajax(url, settings);
});
};
3、请求发送:
var ajax = function (url, settings) {
// like $.ajax, but ensure XSRF or Authorization header is set
if (typeof url === "object") {
// called with single argument: $.ajax({url: '...'})
settings = url;
url = settings.url;
delete settings.url;
}
return $.ajax(url, settings);
};
2、后端代码:
@RequestMapping(value="/openapi/add/{trainId}",method= RequestMethod.GET,produces = "application/json;charset=utf-8")
public void add(@PathVariable Integer trainId, String data, String callback, HttpServletResponse response) throws IOException {
response.setHeader("Content-type","application/json;charset=UTF-8");
response.getWriter().write(callback+"("+ JSON.toJSONString(obj)+")");
}
3、使用方法
service.sendJSONP(url).then(function(resdata){
if(resdata.result == 1){
}
})