动不了一点 2024-07-08 21:35 采纳率: 17.2%
浏览 8

请帮我看下为什么我的服务端没有接收到账号和密码


 <!-- 登录操作与后端交互 -->
   <script>
       function login() {
           var uname = document.getElementById('loginusername').value;
           var pwd = document.getElementById('loginpassword').value;
            console.log(uname);
            console.log(pwd);
           // 构建发送给服务端的数据对象
           var data = {
               uname: uname,
               pwd: pwd
           };
   
           // 发送POST请求
           axios.post('/java_web_final2_war_exploded/demo3', data)
               .then(function (response) {
                   console.log('服务器响应:', response.data);
                   // 在此处可以处理服务器成功响应后的逻辑
               })
               .catch(function (error) {
                   console.error('请求失败:', error);
                   // 在此处可以处理请求失败的逻辑
               });
       }
   </script>
package servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

@WebServlet("/demo3")
public class servlet_demo3 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置响应内容类型
        response.setContentType("text/plain;charset=UTF-8");

        // 接收前端传来的账号密码
        String uname = request.getParameter("uname");
        String pwd = request.getParameter("pwd");

        // 打印到控制台
        System.out.println("接收到的账号:" + uname);
        System.out.println("接收到的密码:" + pwd);

        // 响应客户端,通知登录成功
        response.getWriter().write("登录成功!");

        // 可以根据需要返回更多信息,例如 JSON 数据等
    }
}


img

img

请帮我看下为什么我的服务端没有接收到账号和密码

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-08 21:41
    关注

    引自免费微信小程序:皆我百晓生

    根据你提供的代码和图中的内容,我可以尝试帮助你分析问题所在。根据你给出的描述和代码片段,有几个可能的原因可能导致服务端没有接收到账号和密码:

    1. 请求数据格式问题:确保前端发送的请求数据格式与后端接收的方式一致。前端通过axios.post发送数据时,会将数据以JSON格式发送到服务器。在后端,你需要使用request.getParameter方法来获取请求参数。在这种情况下,确保前端发送的数据中账号和密码是作为请求参数发送的,而不是以JSON或其他格式发送。

    修改前端代码,确保数据以表单格式发送(即作为请求参数):

    // 构建发送给服务端的数据对象(修改此处)
    var data = {
        uname: uname,
        pwd: pwd
    };
    // 将数据转换为查询字符串(query string)并附加到请求中
    axios.post('/java_web_final2_war_exploded/demo3', null, { params: data })
        // ... 其他代码保持不变 ...
    

    在后端代码中,你可以继续使用request.getParameter来接收账号和密码。

    1. 请求路径问题:确保前端发送请求的URL与后端接收的URL匹配。检查/java_web_final2_war_exploded/demo3是否正确指向了你的Servlet路径。如果路径不正确,可能导致请求无法到达正确的Servlet。
    2. 浏览器控制台警告:浏览器控制台可能显示有关表单自动完成(autocomplete)属性的警告。这不会直接影响账号和密码的传输,但它可能是浏览器提示你增强表单安全性的一种方式。确保你的表单元素具有适当的autocomplete属性,例如设置为"off"。例如,在HTML表单中添加<input type="password" name="pwd" autocomplete="off">。这不会解决主要问题,但可以改善用户体验和安全性。
    3. 其他潜在问题:如果以上步骤都没有解决问题,请检查其他潜在的问题,如网络问题、服务器配置问题或后端代码中的其他错误。确保服务器正在运行并且能够处理请求。

    请尝试以上解决方案,并根据情况进行调整。如果问题仍然存在,请提供更多详细的日志或错误信息,以便更好地帮助你解决问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月8日

悬赏问题

  • ¥15 (标签-android|关键词-app)
  • ¥15 微信小程序web-view嵌套H5页面IOS左滑会出现相同的页面,有什么解决方法吗?
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)