java请求html地址jsonp,jsonp调用示例(前端js+后端java实现)

前端

$.jsonp({

url: "http://10.12.8.69:8290/dd_SJ/rest/shuntRest/synchronous",

contentType: "application/x-www-form-urlencoded; charset=utf-8",

data: {

type: Ctype,

mobileNo: MobileNo,

linkMan: LinkMan,

contactNumber: ContactNumber,

problemTypes: ProblemTypes,

province: Province,

city: City,

region: Region,

fullAddress: FullAddress,

concreteProblems: ConcreteProblems

},

jsonp: "callback",

callback: "success_jsonpCallback",

error: function (xOptions, textStatus) {

// 错误发生时,立即执行

console.log('exec ERROR');

},

success: function (res) {

console.log('req success:' + res.success);

if (res.success=="true") {

alert("提交成功");

}

}

});

后端

//JSONP测试服务端

@RequestMapping(value ="/thirdparty/palmhall/orderTransferToHollyV8", produces={"text/html;charset=UTF-8;","application/json;"})

@ResponseBody

public void orderTransferToHollyV8(HttpServletResponse response,HttpServletRequest request, SheetVo vo)throws UnsupportedEncodingException {

JSONObject returnJson =new JSONObject();

//String name = new String(vo.getCity().toString().getBytes("ISO-8859-1"), "GBK");

String city = ParamUtils.getParameter(request, "city");

//city = new String(city.getBytes("ISO-8859-1"),)

String  str=new String(vo.getCity().getBytes("ISO-8859-1"),"utf-8");

PrintWriter pw =null;

returnJson.put("success", "true");

try {

pw = response.getWriter();

//success_jsonpCallback与前台保持一致

pw.write("success_jsonpCallback" +"(" + returnJson.toString() +")");

pw.close();

pw =null;

}catch (Exception e) {

log.error(e, e);

returnJson.put("result", "FAIL");

returnJson.put("message", "系统异常,请稍候再试。");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用axios实现jsonp请求,你需要进行一些额外的步骤。由于axios本身不支持jsonp,你可以通过创建一个动态的script标签来实现。 下面是一个示例代码: ```javascript function jsonp(url, callback) { // 创建一个随机的回调函数名称 const callbackName = 'jsonp_' + Math.random().toString(36).substr(2); // 将回调函数名称作为参数添加到请求URL中 url += (url.indexOf('?') === -1 ? '?' : '&') + 'callback=' + callbackName; // 创建一个script标签 const script = document.createElement('script'); script.src = url; // 将script标签添加到页面中 document.body.appendChild(script); // 定义回调函数 window[callbackName] = function(data) { // 调用传入的回调函数,并传入获取到的数据 callback(data); // 请求完成后移除script标签 document.body.removeChild(script); // 删除全局的回调函数 delete window[callbackName]; }; } // 使用示例 jsonp('http://example.com/api?param1=value1&param2=value2', function(data) { console.log(data); }); ``` 这段代码创建了一个名为`jsonp`的函数,该函数接受两个参数:URL和回调函数。它会生成一个随机的回调函数名称,并将其作为参数添加到请求URL中。然后,它使用动态创建的script标签发送请求,并在请求完成后调用传入的回调函数。最后,它会移除script标签和全局的回调函数。 请注意,这种方法仅适用于GET请求,并且需要服务器返回一个调用回调函数的响应。确保服务器正确处理jsonp请求并返回有效的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值