ajax jsonp跨域乱码解决方案
来源:互联网 发布:六轴机械手臂 算法 编辑:程序博客网 时间:2024/06/01 07:46
在前端页面对要在url中传递的参数进行urlencoder(),是两次编码!!!
在controller中对接收的参数进行解码,一次解码!!!
在controller的@requestmapping()注解中添加属性product:
@RequestMapping(value = "/makeAppointment",produces="text/html;charset=UTF-8")
具体代码如下:
主页(服务端页面vm):
<html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript" src="/js/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#button").click(function(){ var name =encodeURI($("#name").val()); var tel =$("#tel").val(); var url ="/makeAppointment?name="+encodeURI(name)+"&tel="+tel+"&callback=?"; $.getJSON(url, function(data,status){ $("#spanArea").html(data.userName+"\n "+data.id); }); }); }); </script></head><body><div style="position: absolute;left: 504px;height: 522px;" align="center"> <span style="font-size: 43px;font-family: fantasy;color: darkorange;" id="spanArea">预约页面</span><p><span style="font-size: 33px;font-family: fantasy;color: gray;"> 姓名:</span><input type="text" id="name" style="width: 400px;height: 38px;font-size: 33px;"></p><p><span style="font-size: 33px;font-family: fantasy;color: gray;"> 电话:</span><input type="text" id="tel" style="width: 400px;height: 38px;font-size: 33px;"></p><button id="button" style="width: 300px;height: 41px;background-color: darkorange;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;font-size: 30px;"> 预 约</button></div></body></html>
controller代码:
package com.jd.jr.controller;import com.alibaba.fastjson.JSON;import com.jd.jr.po.UserPo;import org.apache.log4j.Logger;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;/** * Created by guojiangjiang on 2015/8/7. */@Controllerpublic class Appointment { private static Logger logger = Logger.getLogger(Appointment.class); //@RequestMapping(value = "/makeAppointment",produces="text/html;charset=UTF-8") @RequestMapping(value = "/makeAppointment",produces="text/html;charset=UTF-8") @ResponseBody public String getAppointment(String name,String tel,String callback) throws UnsupportedEncodingException { // logger.info("name is: " + URLDecoder.decode(name,"UTF-8") + "tel is : " + URLDecoder.decode(tel,"utf-8")); //String names =new String(name.getBytes("iso-8859-1"),"utf-8"); String names = URLDecoder.decode(name, "utf-8"); int telep = Integer.parseInt(tel); UserPo user = new UserPo(); user.setId(telep); user.setUserName(names); String json = JSON.toJSONString(user); String result = callback+"("+json+")"; System.out.println(result); return result; }}
跨域页面:
<html><head> <meta http-equiv="content-type" content="text/html; charset=gbk"> <script type="text/javascript" src="jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#button").click(function(){ var name =encodeURI($("#name").val()); var tel =$("#tel").val(); var url ="http://localhost:8080/makeAppointment?name="+encodeURI(name)+"&tel="+tel+"&callback=?"; $.getJSON(url, function(data,status){ $("#spanArea").html(data.userName+"\n "+data.id); }); }); }); </script></head><body><div style="position: absolute;left: 504px;height: 522px;" align="center"> <span style="font-size: 43px;font-family: fantasy;color: darkorange;" id="spanArea">预约页面</span><p><span style="font-size: 33px;font-family: fantasy;color: gray;"> 姓名:</span><input type="text" id="name" style="width: 400px;height: 38px;font-size: 33px;"></p><p><span style="font-size: 33px;font-family: fantasy;color: gray;"> 电话:</span><input type="text" id="tel" style="width: 400px;height: 38px;font-size: 33px;"></p><button id="button" style="width: 300px;height: 41px;background-color: darkorange;font-family: Helvetica Neue, Helvetica, Arial, sans-serif;font-size: 30px;"> 预 约</button></div></body></html>
0 0
- ajax jsonp跨域乱码解决方案
- ajax 跨域访问 jsonp解决方案
- Ajax跨域访问解决方案(httpclient、JSONP深入剖析)
- 浅谈Ajax跨域的解决方案——CORS、JSONP
- jsonp实现ajax跨域访问解决方案-java
- Ajax跨域请求解决方案——jsonp
- jsonp跨域解决方案
- JSONP 跨域解决方案
- 跨域解决方案JSONP
- ajax jsonp跨域调用
- ajax 跨域处理 jsonp
- ajax跨域请求jsonp
- jsonp ajax跨域访问
- ajax jsonp跨域处理
- ajax跨域访问jsonp
- ajax Jsonp 跨域原理
- Ajax跨域和JSONP
- AJAX - 跨域请求 && JSONP
- Android Animation
- 【第7篇】TypeScript泛型的案例代码详解
- 【Java设计模式】· 访问者模式(Visitor Pattern)
- 排序算法 C++代码实现
- POJ 3415
- ajax jsonp跨域乱码解决方案
- 【第8篇】TypeScript的Mixin案例代码详解
- 从jQuery里面看变量与作用域
- [精彩] 关于mysql内存溢出,请高手支招
- C++类对象创建过程揭密
- iOS中的GCD多线程
- 设置导航栏上的返回按钮
- HDU 1863 畅通工程 kruskal算法 最小生成树
- 【第9篇】TypeScript声明合并Merging 案例代码详解