求助ajax请求不到后端tomcat地址
这是表单<form role="form" method="post" class="input-length"><div class="form-group">
<input type="text" id="username" class="form-control input-bottom-length" name="username"
placeholder="用户名">
<input type="password" id="password" class="form-control input-bottom-length" name="password"
placeholder="密码">
</div>
<a href="#" class="a-right-length">忘记密码</a><a href="#" class="">注册</a>
<button class="btn form-control btn-info" onclick="send()" id="submits">提交</button>
</form>
这个是请求<script type="text/javascript">
var username = document.getElementById("username");
var password = document.getElementById("password");
var user = {"username": username, "password": password};
function send() {
$.ajax({
async: true,
url: "/blogs_war/login",//URL没有变意味着我用同一个servlet哦,演示本例的时候吧之前的都注释掉了
data: JSON.stringify(user),
processData: false,
success: function (data) {
alert(data);
},
error: function (e) {
alert(e);
}
})
}
</script>后端无响应,附上代码,求助@WebServlet(name = "LoginServlet", urlPatterns = "/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/json;charset=UTF-8");
BufferedReader reader = new BufferedReader(request.getReader());
String json = reader.readLine();
List<Object> list = JSONArray.parseArray(json);
System.out.println(list.get(0));
System.out.println(list.get(1));
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username + "###" + password);
Servce servce = new Servce();
if (servce.login(response, username, password)) {
request.getRequestDispatcher("/danshbod.html").forward(request, response);
} else {
response.getWriter().write(servce.getJson().toString());
servce.getJson().remove("message");
}
}
}
你的BufferedReader reader = new BufferedReader(request.getReader()); 这个方式应该拿不到任何东西吧。
你虽然是前端form表单。但是实际提交的时候没有表单提交,而是用ajax提交。。这里提交的文件头貌似不是json的吧。。
http://jquery.cuishifeng.cn/jQuery.Ajax.html
参考这个页面,搜索contentType 这个参数,你这默认是表单提交的话,这个方式应该是拿不到的。。
request.getParameter("username"); 这个方式应该能拿到。。
不过按你的说法。。你应该先试看url对不对。。把service里的代码注释掉,只是简单的打印看看能不能打印出来。。。
试试用浏览器按F12打开调试控制台看有没有请求失败 Guijing 发表于 2019-11-28 09:45
试试用浏览器按F12打开调试控制台看有没有请求失败
感谢老哥的回复,不过是一个jquery包没有导,而且其中有form表单,默认以form表单提交,将form标签去掉再用Ajax传就可以 BlueMoonWolf 发表于 2019-11-27 22:10
你的BufferedReader reader = new BufferedReader(request.getReader()); 这个方式应该拿不到任何东西吧。
...
感谢老哥的回复,不过是一个jquery包没有导,而且其中有form表单,默认以form表单提交,将form标签去掉再用Ajax传就可以 yangwulang 发表于 2019-11-28 17:12
感谢老哥的回复,不过是一个jquery包没有导,而且其中有form表单,默认以form表单提交,将form标签去掉再 ...
不是,我记得form表单只有一个控件的时候才会默认变成提交的。。
多个貌似不会,你那个ajax的提交,默认也是form表单的application/x-www-form-urlencoded 格式的。。
我发的那个链接里contentType,也就是你那个$.ajax的参数之一。。指定提交的类型的,如果你要json要该这个。。。(就是你后台代码前部分转成json的那里。。JSONArrayn那部分。。我看这部分以为你要用json传数据),后半截倒是提取form表单的数据
页:
[1]