Open ApacheHeiZ opened 8 years ago
@AlphaHinex 这样啊
对
md,你名跟我的容易混啊,能不能别总模仿哥
@AlphaHinex 比如:登录页面,用jquery.ajax();往一个a.jsp页面发请求,这个我能做,也能成功的去到参数啥的,但是 返回 success(fanction(data))的时候的感觉 不会 在 a.jsp页面给的json数据返回并在登录的jsp处理
@AlphaHinex 瞎试过,html ,text,啥的 都不成功,
不用一直 @,是 participants 了应该就会一直通知了
success 的时候能得到 data 不?
返回html的时候 能得到
实际上我就想 返回个 OK 和 noOK
那现在问题是什么?
但是,alert data的时候能弹出个窗口 到 if 判断里面就不行了
你先跟我说说 jsp 怎么构建个JSON数据返回呗
我都是在网上瞎找的
估计你是没弄明白 js 是异步的,不是像 java 一样顺序执行的
jsp 构建 JSON 返回?返回给谁?jsp 不就是前端了吗,还往哪返?
A 请求 到 B,B判断,将值返回A,这样不行吗?
jquery怎么发请求到后台的java类的某个方法呢?
A 请求 到 B,B判断,将值返回A,这样不行吗?
可以,你现在不是已经在 success 里获得到返回来的 data 了嘛?
jquery怎么发请求到后台的java类的某个方法呢?
你请求的 url 就是某个类的方法处理的啊
直接写后台的类的方法名啊?
不应该是路径吗?在网上查的都是 到类然后应用struts 指向方法的
你现在后台不是直接 servlet 吗?servlet 不是得有一个对应的 url 吗?你就请求那个 url 就行
有没有现成的,给我一个 这样的 我看看,我哪里写的有问题
你把你的贴上来我看看
$(function(){ $("#image").click(function(){ var username=$("#username").val(); var password=$("#password").val(); alert(username+"/r/n"+password); $.ajax({ type:"POST", url:"JQueryverify.jsp", dataType:"json", data:{username:username,password:password}, success:function(data){ alert(data.result); }
});
});
});
绑在 imag点击上了
<% LoginAction la = new LoginAction(); ArrayList<HashMap<String, String>> userList = new ArrayList<HashMap<String, String>>(); if (la.getLogin(request).equals("failure")){ //用户名或者密码为空 response.getWriter().write("{reslut:failure.null}"); } else { //用户名和密码都不为空,并且已经set完毕 if (la.validateLogin().equals("success")){ userList = la.getUserList(); //yhzd_yhbh, yhzd_pass, yhzd_yhxm, yhzd_xtbh, yhzd_dwbh, yhzd_zw, yhzd_xzbz, yhzd_dwbz session.setAttribute("yhbh",userList.get(0).get("YHZD_YHBH")); session.setAttribute("pass",userList.get(0).get("YHZD_PASS")); session.setAttribute("yhxm",userList.get(0).get("YHZD_YHXM")); session.setAttribute("xt",userList.get(0).get("YHZD_XTBH")); session.setAttribute("dw",userList.get(0).get("YHZD_DWBH")); session.setAttribute("zw",userList.get(0).get("YHZD_ZW")); session.setAttribute("xzbz",userList.get(0).get("YHZD_XZBZ")); session.setAttribute("dwbz",userList.get(0).get("YHZD_DWBZ")); response.getWriter().write("{reslut:success.login}"); } else { response.getWriter().write("{reslut:failure.pass}"); } } %>
处理
现在有问题
出不来 data了
发过去 没有问题 我都在后台打印出来了
别说 两个 result不一样
改过来也一样 不弹 data.result
你这全是 jsp 啊
你 write 之前试试先 javax.servlet.ServletResponse#setContentType
response.setContentType("application/json");
不会往后台的方法发请求啊 会的话就不往页面发了
response.setContentType("application/json");
放在所有的jsp上边,没有反应
调试的话能看到json里的数据吗?
=我试试
index.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<body>
<button id="btn">test</button>
<script src="https://cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script>
<script>
$('#btn').click(function() {
$.ajax({
url: 'ctrl.jsp',
success: function(data) {
console.log(data);
alert('a is ' + data.a + ' and b is ' + data.b);
}
});
});
</script>
</body>
</html>
ctrl.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<%
response.setContentType("application/json");
response.getWriter().write("{\"a\": 123, \"b\": 456}");
%>
必须要这么弄吗? {\"a\": 123, \"b\": 456}
这句什么意思?
console.log(data);
{"a":"aa", "b":"bb"}
是 JSON 的标准格式吧,你那么写可能也行,你试试
console.log
是往浏览器控制台打日志,可以忽略
我复制你的 我这就不行
jquery.js的问题?
用我给的例子不行?那你换 jq 版本试试
你的给我邮箱? 277864612@qq.com
我那不是写 url 了嘛,你直接浏览器访问保存下来就行
https://cdn.bootcss.com/jquery/2.1.4/jquery.min.js
我引入的有问题吗?
src="js/jquery-2.1.4.min.js"
@ApacheHeiZ 直接在这里说就行