通过ajax success alert在后台请求页面数据,再到前台加载,为什么有alert这句话就可以用,没有这句话就不可以用呢,求解答

AJAX从后台读取数据
返回到前台的问题
必须先alert
一下,才能获取数据
,求帮忙!!
[问题点数:80分]
AJAX从后台读取数据
返回到前台的问题
必须先alert
一下,才能获取数据
,求帮忙!!
[问题点数:80分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年2月 总版技术专家分月排行榜第二2014年2月 总版技术专家分月排行榜第二2013年4月 总版技术专家分月排行榜第二
优秀小版主2015年7月优秀小版主2015年9月优秀小版主2015年5月优秀小版主2014年11月论坛优秀版主
2014年10月 Java大版内专家分月排行榜第二2014年9月 Java大版内专家分月排行榜第二2014年8月 Java大版内专家分月排行榜第二
2016年1月 Java大版内专家分月排行榜第三2014年12月 Java大版内专家分月排行榜第三2014年11月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。学习笔记_springmvc返回值、数据写到页面、表单提交、ajax、重定向 - 推酷
学习笔记_springmvc返回值、数据写到页面、表单提交、ajax、重定向
实验是在前一篇文章的项目上做的;
数据写到页面
后台往前台传数据
TestController添加
* 方法的返回值采用ModelAndView, new ModelAndView(&index&, map);,
* 相当于把结果数据放到request里面
* @throws Exception
@RequestMapping(&/toPerson4.do&)
public ModelAndView toPerson4() throws Exception{
Person person = new Person();
person.setName(&jerome&);
person.setAge(22);
person.setAddress(&nanan&);
SimpleDateFormat format = new SimpleDateFormat(&yyyy-MM-dd&);
Date date = format.parse(&&);
person.setBirthday(date);
Map&String,Object& map = new HashMap&String, Object&();
map.put(&p&, person);
return new ModelAndView(&jsp/index&,map);
页面接收:index.jsp
&h5&${p.name }&/h5&
&h5&${p.age }&/h5&
&h5&${p.address }&/h5&
&h5&&fmt:formatDate value=&${p.birthday }& pattern=&yyyy-MM-dd&/&&/h5&
在jsp引入fmt标签库
* 文章包含被禁用的url,无法保存和发布。&
太坑了,这个链接也屏蔽~&
重启tomcat访问:
http://localhost:8080/springmvc-2/test/toPerson4.do
输出信息正确;
另外一种方式:&
* 直接在方法的参数列表中来定义Map,这个Map即使ModelAndView里面的Map
* 由视图解析器统一处理,统一走ModelAndView的接口
* 也不建议使用
* @param map
* @throws Exception
@RequestMapping(&/toPerson5.do&)
public String toPerson5(Map&String,Object& map) throws Exception{
Person person = new Person();
person.setName(&jerome&);
person.setAge(22);
person.setAddress(&nanan&);
SimpleDateFormat format = new SimpleDateFormat(&yyyy-MM-dd&);
Date date = format.parse(&&);
person.setBirthday(date);
map.put(&p&, person);
return &jsp/index&;
重启tomcat访问:
http://localhost:8080/springmvc-2/test/toPerson5.do
输出正确;
建议使用方式:
*在参数列表中直接定义Model,model.addAttribute(&p&, person);
*把参数值放到request类里面去,建议使用
* @param map
* @throws Exception
@RequestMapping(&/toPerson6.do&)
public String toPerson6(Model model) throws Exception {
Person person = new Person();
person.setName(&jerome&);
person.setAge(22);
person.setAddress(&nanan&);
SimpleDateFormat format = new SimpleDateFormat(&yyyy-MM-dd&);
Date date = format.parse(&&);
person.setBirthday(date);
//把参数值放到request类里面去
model.addAttribute(&p&, person);
return &jsp/index&;
重启tomcat访问:
http://localhost:8080/springmvc-2/test/toPerson6.do
输出正确数据;
不需要页面跳转:ajax
后台方法:
在TestController加
* ajax的请求返回值类型应该是void,参数列表里直接定义HttpServletResponse,
* 获得ProntWriter的类,最后可把结果写到页面
* 不建议使用
* @param name
* @param response
@RequestMapping(&/ajax.do&)
public void ajax(String name, HttpServletResponse response) {
String result = &hello & +
response.getWriter().write(result);
} catch (IOException e) {
e.printStackTrace();
前台调用 新建ajax.jsp
&input id=&myButton& type=&button& value=&click&&
Webroot新建js文件夹将jquery拷贝进来;
引进来jquery 和写js脚本:
&script type=&text/javascript&&
$(function(){
$(&#myButton&).click(function(){
url:&test/ajax.do&,
type:&post&,
dataType:&text&,
name:&zhangsan&
success:function(responseText){
alert(responseText);
error:function(){
alert(&system error&);
后台写一个转发:
@RequestMapping(&/toAjax.do&)
public String toAjax() {
return &jsp/ajax&;
重启tomcat 访问&
http://localhost:8080/springmvc-2/test/toAjax.do
Click,弹出hello zhangsan,成功;
以上方法不建议使用,建议使用:
* 直接在参数的列表上定义PrintWriter,out.wrote(result);
* 把结果写到页面,建议使用
* @param name
* @param out
@RequestMapping(&/ajax1.do&)
public void ajax1(String name, PrintWriter out) {
String result=&hello1 &+
out.write(result);
修改ajax.jap页面的,js脚本,跳转的url是
url:&test/ajax1.do&,
重启tomcat 访问 &
http://localhost:8080/springmvc-2/test/toAjax.do
hello1 zhangsan;
拷贝一份index,起名form.jsp
&form action=&test/toPerson7.do& method=&post&&
name:&input name=&name& type=&text&&&br/&
age:&input name=&age& type=&text&&&br/&
address:&input name=&address& type=&text&&&br/&
birthday:&input name=&birthday& type=&text&&&br/&
&input type=&submit&&&br/&
TestController
@RequestMapping(&/toPerson7.do&)
public String toPerson7(Person person) {
System.out.println(person);
return &jsp/index&;
重启tomcat 访问:
http://localhost:8080/springmvc-2/test/toForm.do
提交跳转到
http://localhost:8080/springmvc-2/test/toPerson7.do
控制台输出
Person [name=aa, address=asdf, birthday=Tue Jun 03 00:00:00 CST 2014, age=22]
请求方式的指定:
后台可以指定提交方法,如果前台不是用的同一种提交方式 将报错;
* @RequestMapping(value=&/toPerson7.do&,method=RequestMethod.POST)
* 可以指定请求方式,前台就必须要以它制定好的方式来访问,不然会出现405错误
* @param person
@RequestMapping(value=&/toPerson7.do&,method=RequestMethod.POST)
public String toPerson7(Person person) {
System.out.println(person);
return &jsp/index&;
Form.jap的method修改为get和post测试;
同一个 controller
* 重定向:controller内部重定向,redirect:加上同一个controller中
* 的requesMapping的值
@RequestMapping(&/redirectToForm.do&)
public String redirectToForm() {
return &redirect:toForm.do&;
重启tomcat 访问:
http://localhost:8080/springmvc-2/test/redirectToForm.do&
http://localhost:8080/springmvc-2/test/toForm.do
Controller之间的重定向:
拷贝一份TestController改成TestController1
@Controller
//用来标注当前类是springmvc的控制层的类
@RequestMapping(&/test1&)
//controller的唯一标识或者命名空间
public class TestController1 {
@RequestMapping(&/toForm.do&)
public String toForm() {
return &jsp/form&;
TestController 添加
controller之间的重定向:必须要指定好controller的命名空间再
指定requestMapping的值,redirect:后必须要加/,是从根目录开始,
否则就从当天test找了
@RequestMapping(&/redirectToForm1.do&)
public String redirectToForm1() {
return &redirect:/test1/toForm.do&;
重启tomcat 访问
http://localhost:8080/springmvc-2/test/redirectToForm1.do
http://localhost:8080/springmvc-2/test/toForm.do
jquery-1.6.2.js下载:
/s/1o6nwWP0
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致jquery ajax 后台返回值
到前台不会处理了
- 开源中国社区
当前访客身份:游客 [
当前位置:
我用的是spring mvc+mybatis 在添加用户的时候想返回信息 这个是我的controller和jsp和打印信息,我想取出来那个map里面的value 用data.msg是不可以的 我已经试过了 ,拜托大家了 我弄了一个下午了
共有7个答案
<span class="a_vote_num" id="a_vote_num_
另外你的data这个参数 其实可以写成json格式
customerName:customerName,
customerPass:customerPass,
customerSex:customerSex
你用火狐的firebug看下请求返回的结果是什么类型 类型对不对 是不是json格式&
另外ie是不支持application/json的类型的
试一下用eval函数转换一下success返回的data数据看看
success:function(data){
data = eval(&(&+data+&)&);
alert(data.msg);
你应该是用spring mvc里面默认的json解析器了吧 &那玩意我用也有点问题
楼主还是换种方式写吧 &通过response 配合fastjson 往前台页面写出数据吧
--- 共有 5 条评论 ---
: 好的,谢了呀
(2年前)&nbsp&
: 可以用@ResponseBody 但别用自带的HttpMessageConverter去转换
(2年前)&nbsp&
: @ResponseBody我用的是这个注解,我在网上查了查这个注解的意思: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。 为什么不建议这么使用呢,如果不这么使用我该如何写?
(2年前)&nbsp&
: 你返回的是符合json格式的字符串,所以得用eval转成json。 不建议用springmvc自带的那个json解析器!
(2年前)&nbsp&
{"msg":"恭喜你添加成功"}这个是火狐返回来的数据,是json格式吧!我eavl了一下,真的可以,为什么呢 ,我后台方法的返回值类型是map,传到后台为什么{"msg":"恭喜你添加成功"}是这个格式的,eavl起的是啥作用呀
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
dataType 为何注释?还有,你既然都用post了为何还要拼url
--- 共有 1 条评论 ---
如果不拼接 后台接受不到参数,我放开了就ajax就请求失败了
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
dataType设为json
--- 共有 1 条评论 ---
我设为json了之后 请求ajax方法就失败了,我也不知道怎么回事
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
可知搜索引擎有何用
--- 共有 1 条评论 ---
不懂,呵呵
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
引用来自“大喵哥”的评论 另外你的data这个参数 其实可以写成json格式
customerName:customerName,
customerPass:customerPass,
customerSex:customerSex
你用火狐的firebug看下请求返回的结果是什么类型 类型对不对 是不是json格式&
另外ie是不支持application/json的类型的
试一下用eval函数转换一下success返回的data数据看看
success:function(data){
data = eval(&(&+data+&)&);
alert(data.msg);
你应该是用spring mvc里面默认的json解析器了吧 &那玩意我用也有点问题
楼主还是换种方式写吧 &通过response 配合fastjson 往前台页面写出数据吧
谢谢你帮我解决了问题
<span class="a_vote_num" id="a_vote_num_
@ResponseBody
@RequestMapping(&/download/{id}&)
public void download(@PathVariable(&id&) String id,HttpServletResponse response){
response.setContentType(&text/charset=UTF-8&);
Map map=new HashMap();
map.put(&msg&,&成功&);
response.getWriter().print(com.alibaba.fastjson.JSON.toJSONString(map));
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
e.printStackTrace();
<span class="a_vote_num" id="a_vote_num_
不可能啊,你把参数换成花括号的标准格式
更多开发者职位上
有什么技术问题吗?
薄暮凉年的其它问题
类似的话题为什么我这段代码在页面加载的时候发送的请求,后台没有接收到??求解惑_百度知道
为什么我这段代码在页面加载的时候发送的请求,后台没有接收到??求解惑
(document);.ajax({
url,false): function (text) {
var xmldata =parseXML&quot,
&#47;&#47;&#47;
alert(xmldata);#bbgxForm&quot: &
var data = bbgxForm.encode(data);bbkz&#47.getData():json},;
}): {submitData.Form(&quot,
$;获取表单多个控件的数据
var json =
});).decode(post&quot: &quot.ready(function(){
var bbgxForm = new mini
先在ajax前打印一下,判断JS是否获得数据。如果获得ajax写的有问题,尝试,写的规范点,比如数据类型写上请求有没有发送到后台,如果请求到了后台没有数据
其他类似问题
为您推荐:
基金公司的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁关闭IE时调用AJAX来和后台交互,必须要加ALERT,不然就不行,很奇怪 -Web- TryCatch
>> Content
关闭IE时调用AJAX来和后台交互,必须要加ALERT,不然就不行,很奇怪
我想实现的就是用户关闭IE时,执行onbeforeunload方法,然后把返回值传给SERVLET,然后由SERVLET操作把值返回给页面,如果返回0就不提示,直接关闭,如果非0就alert出后台的提示信息,然后关闭,现在问题就是加alert("结束&&"+retCode);这一行就可以实现,去掉这一行就不行&&//关闭IE时进行使用AJAX与后台的交互&var&winClose&=&&&&&&&function&window.onbeforeunload()&&&&&&{&&&&&&&&&//关闭IE时不弹出提示按钮&&&&&&window.opener&=&&&&&&&&&&&&&winClose&=&event.clientX&&&document.body.clientWidth&&&&event.clientY&&&0&||&event.altK&&&&&&&&&&&&//关闭&&&&&&if(winClose)&&&&&&{&&doRequestUsingPOST();&&&&  }&&&&&&}&&&&&&&&&//使用post方式发送function&doRequestUsingPOST(){&createXMLHttpRequest();&var&retCode&=&document.getElementById("retCode").&&var&queryString&=&"retCode="+retC&var&url="./AJAXtest";//使用URL向后台传值&&xmlHttp.open("POST",url,true);&xmlHttp.onreadystatechange&=&handleStateC&xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");&xmlHttp.send(queryString);&alert("结束&&"+retCode);}请高手说一下,急用,[email=][/email]
------Solutions------
&&&//使用post方式发送function&doRequestUsingPOST(){alert("111");&createXMLHttpRequest();&alert("222");&var&retCode&=&document.getElementById("retCode").&&alert("3333");&var&queryString&=&"retCode="+retC&alert("444");&var&url="./AJAXtest";//使用URL向后台传值&alert("555");&&xmlHttp.open("POST",url,true);&alert("6666");&xmlHttp.onreadystatechange&=&handleStateC&alert("777");&xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");&alert("888");&xmlHttp.send(queryString);&alert("999");//&alert("结束&&"+retCode);}用alert("999");代替也可以,注释掉alert("999");也是出问题,程序弹出888之后就没有了,页面关闭了
------Solutions------
关注&顶&&是否可以把&alert("结束&&"+retCode);&改成&var&1=20;&试试可以否
------Solutions------
引用&2&楼&jingshuaizh&的回复:关注&顶&&是否可以把&alert("结束&&"+retCode);&改成&var&1=20;&试试可以否哥们不行啊,加你这一句var&1=20;,JS页面就报错了,呵呵我修改成了,&&&//使用post方式发送function&doRequestUsingPOST(){&createXMLHttpRequest();&var&retCode&=&document.getElementById("retCode").&&var&queryString&=&"retCode="+retC&var&url="./AJAXtest";//使用URL向后台传值&&xmlHttp.open("POST",url,true);&xmlHttp.onreadystatechange&=&handleStateC&xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");&alert("111");&xmlHttp.send(queryString);&&//alert("结束&&"+retCode);&retCode&=&0;}然后运行到了xmlHttp.send(queryString);就没有了,但是后台servlet得到值了控件返回值retCode&&&&0说明他和后台交互了,但是后台不能把值传给前台
------Solutions------
因为你使用的是异步请求&当执行完xmlHttp.send(queryString);后&程序是不会等待服务器返回结果的&而是直接往下执行了&so....你可以把xmlHttp.open("POST",url,true)改成xmlHttp.open("POST",url,true)试下
------Solutions------
更正。。。把红色的部分改成falsexmlHttp.open("POST",url,false);
------Solutions------
引用&5&楼&shangxb&的回复:更正。。。把红色的部分改成false&xmlHttp.open("POST",url,false);恩,可以了,多谢啊
------Solutions------
先不结贴,再看看有没有专家有别的建议
------Solutions------
这个参数.确认是同步还是异步通讯.AJAX嘛.就是异步了.
------Solutions------
引用&8&楼&mrshelly&的回复:这个参数.确认是同步还是异步通讯.&AJAX嘛.就是异步了.同步还是异步通讯的具体区别呢
------Solutions------
同步问题。。
------Solutions------
没人拉,周日封贴
------Solutions------
Ajax在网页中最大的一个优点是它可以访问服务器上的信息而不需要重新加载网页。这意味着要检索或是更新信息的某一小个部分的时候,只需要从服务器端传送那一部分需要的信息而不需要重新下载整个网页。  Ajax可以通过两种方法访问服务器,即同步(脚本会停留并等待服务器发送回复然后再继续)和异步(脚本允许页面继续其进程并处理可能的回复)。  同步处理你的请求有一点像重新加载页面但是只需要下载要求的信息而不是整个页面。因此这一方法会比不使用Ajax要快一些因为信息的下载量要小,所以检索的速度就快了。但是要使用这个方法需要你的访客等待下载请求的出现。虽然你的访客已经习惯了等待下载整个页面,但是他们还不习惯在与网页互动的时候进行等待,因此除非你要求的信息是小到可以迅速下载完的,否则用户是不会耐心去等待的。  异步处理避免了服务器检索时候的延时问题,因为你的访客可以继续在页面进行操作,而要求的信息也可以在更新页面的同时得到处理。对于较大的请求来说,所需的响应时间较长,但是如果使用异步处理,那么访客不会特别意识到延时所带来的麻烦,因为他们的注意力仍然放在对页面的操作上。而对于那些瞬时的响应,你的访客甚至根本不会意识到服务器发出了这样的请求。  因此使用异步调用是Ajax中比较受青睐的方法,这种方法可以为访客的访问提供更便捷的服务,使得他们更愉悦,也避免了Ajax干扰其他页面的操作。  如果异步调用对于访客来说是可以提供比同步调用更方便的访问的话,那么为什么Ajax还要为我们提供同步调用呢?虽然异步调用的使用率几乎是百分之百,但是总是有一些例外情况的。在极少见的情况下,让你的访客在某一特定服务器端的处理过程结束前,让你的访客继续操作页面是没有什么意义的。如果是碰到这样的情况,或许根本不要使用Ajax而只是重新载入整个页面。Ajax中的同步选择是为极少数既不能使用异步调用也不能重新载入整个页面的情况而准备的。虽然这样的情况不多,但是它们确确实实存在,因此为以防万一Ajax需要准备同步调用。  对于很多初学者来说,容易掉入使用同步调用的误区,即便是在更适合使用异步调用的时候,他们还是一如既往地选择同步调用。造成这一情况的原因主要是因为同步调用更容易让人理解整个进程是怎样运行的。事实上,除了不需要等待响应以外,异步调用的工作原理和同步调用大同小异。  两者唯一的区别是在使用异步调用的时候,我们可以设置多个Ajax调用,这个调用是重叠的,即在前一个还没有响应的时候就可以发出第二个调用。这就异步调用比同步调用看上去要复杂一些的原因,因为你需要确定每个Ajax请求使用的都是单独的Ajax对象而不是所有的Ajaz请求都重复使用相同的对象。如果多个异步调用使用的是同一个对象那么响应处理器只会处理收到的第一个响应,而且会忽视其他后续响应。使用带有相同对象的重叠的Ajax调用,我们没有一个确凿的方法可以分辨出究竟哪个响应被处理了,也不知道该响应是否与发出的请求顺序一致。而为每个Ajax调用使用单独的对象,我们就可以获得相应的响应,响应处理器也能够准确对它们进行分辨。  异步使用Ajax对于大多数情况来说都是更好的选择。如果你只需从页面发出一个Ajax调用,那么,除了那个指定要怎样处理调用的参数以外,其编码方式和同步调用没有什么不同。在相同页面使用多个Ajax调用,唯一的复杂的地方是你需要为每个请求创建一个单独的Ajax对象。各种类型的Ajax库可以为你做好这样,唯一需要你编写异步调用代码的情况是你需要与同步调用不同的操作。
------Solutions------
我也碰到了同样的问题,怎么我把true改成false就不行了
------Solutions------
我也出了这问题}

我要回帖

更多关于 sweetalert ajax 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信