凡人码农 2024-04-16 20:48 采纳率: 66.7%
浏览 6
已结题

Java前端表单提交给后端出现问题

postman测试 后端的响应能够通过 ,但是前端点击添加按钮的时候发现没变化,好像并没请求后端,网络事件没变化

img

img

<template>
<body>
  

  <div id="poster" style="height:670px " >


    <el-container style="margin=0px">
      <el-header style="text-align:left">图书管理平台</el-header>
   
    </el-container>


    <el-container class="addContainer"  style="width:100%"  >
       <el-menu
      default-active="2"
      class="el-menu-vertical-demo"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b"
      style="height:580px"
      
      >
      <el-menu-item index="2">
        <i class="el-icon-menu"></i>
        <el-button type="info">新增图书</el-button>
      </el-menu-item>
      <el-menu-item index="2">
        <i class="el-icon-menu" ></i>
        <el-button type="info" @click="select">查询图书</el-button>
      </el-menu-item>
     
    
    </el-menu>
     <el-form
      :model="bookForm"
      :rules="rules"
      ref="bookForm"
      label-width="100px"
      class="bookForm-container"
      style="width:880px"

      >
      <el-form-item label="书名"   prop="bookName">
        <el-input v-model="bookForm.bookName"></el-input>
      </el-form-item>
      <el-form-item label="作者" prop="author">
        <el-input v-model="bookForm.author"></el-input>
      </el-form-item>
      <el-form-item label="出版社" prop="publish">
        <el-input v-model="bookForm.publish"></el-input>
      </el-form-item>

      <el-form-item label="序号" prop="bookId">
        <el-input v-model="bookForm.bookId" auto-complete="off"></el-input>
      </el-form-item>

       <el-form-item label="价格" prop="price">
        <el-input v-model="bookForm.price" placeholder='包含小数点后两位'></el-input>
      </el-form-item>
      <el-form-item label="入库日期" required >
        <el-col >
          <el-form-item prop="inputDate">
            <el-date-picker
              type="date"
              placeholder="选择日期"
              v-model="bookForm.inputDate"
              style="width: 100%"
            ></el-date-picker>
          </el-form-item>
        </el-col>

      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="submitForm"
          >确认入库</el-button>
      </el-form-item>
    </el-form>
  </el-container>
    
  </div>
  </body>
</template>

<script>
export default {
  name: "book",
  data() {
      return {
        bookForm: {
          bookName: '',
          author: '',
          publish: '',
          price:'',
          bookId: '',
          inputDate: ''
        },
        rules: {
        bookName: [
          { required: true, message: "请输入书名", trigger: "blur" },
          { min: 2, max: 30, message: "长度在 2 到 30 个字符", trigger: "blur" },
        ],
         author: [
          { required: true, message: "请输入作者", trigger: "blur" },
          { min: 2, max: 30, message: "长度在 2 到 30 个字符", trigger: "blur" },
        ],
         publish: [
          { required: true, message: "请输入出版社", trigger: "blur" },
          { min: 4, max: 30, message: "长度在 4 到 30个字符", trigger: "blur" },
        ],
         price: [
          { required: true, message: "请输入价格,包含小数点后两位", trigger: "blur", validator:(rule,value,callback)=>{
            if(value===''||(!/^[1-9]{2,3}\.{1}\d{2}$/.test(value))){
              callback.$message.error('请输入正确的价格')
            }
          } },
          { min: 4, max: 6, message: "长度在 4 到 6 个字符", trigger: "blur" },
          
        ],
           bookId: [
          { required: true, message: "请输入序号", trigger: "blur" },
          { min: 10, max: 10, message: "长度为10个字符", trigger: "blur" },
        ],
      
        inputDate: [
          {
            type: "date",
            required: true,
            message: "请选择日期",
            trigger: "change",
          },
        ],
        
      
      },
        
      };
    },

   
    methods: {
 
      submitForm() {
        this.$refs.bookForm.validate((valid) => {
          if (valid) {
           this.axios.post("http://localhost:8080/book/add",this.bookForm).then((res=>{
            if(res.data.code===1){
           this.$message.success("入库成功")
            }else{
               this.$message.error("入库失败")
            }
           })) 
           
          } else {
            this.$message.error("未通过,入库失败")
            
          }
        });
      },

      select(){

        this.$router.push({path:"/bookSelect",name:"select"})

      }
    }
  
};
</script>


<style>

.poster{
  border: 0px;
}



header{
  width: 100%;
 font-size: 30px;
  color: rgb(60, 95, 210);
  border: 5px;
  margin: 0px;
  text-align: center;
  line-height: 40px;

}

h6{
  float: left;
  text-align: left;
}

.addContainer{
  height: 600px;
  background-position: center;

}

</style>

  • 写回答

4条回答 默认 最新

  • GISer Liu 2024-04-16 22:50
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    问题分析:

    1. 前端页面中存在一个新增图书按钮,点击后应该触发提交表单的操作,将表单数据发送给后端进行处理,但点击按钮后没有触发请求。
    2. submitForm 方法中,通过 Axios 发送 POST 请求,但是请求未能成功触发。
      解决思路与方案:
    3. 首先,需要确认前端页面中的按钮点击事件是否正确绑定到了 submitForm 方法上。确保按钮的点击事件绑定没有问题。
    4. 检查是否引入了 Axios 库,并且是否正确配置。
    5. 检查代码中的路由跳转是否正确,以确保跳转逻辑没有影响到请求的发送。
    6. 检查浏览器的开发者工具(比如 Chrome 的开发者工具)中的网络请求,确认是否有请求被发送,以及请求的状态和响应内容。
    7. 如果确定前端代码没有问题,可以进一步检查后端的接口是否正常工作,例如使用 Postman 或其他工具测试后端接口的可用性和正确性。
      在确认了以上方面没有问题后,可以逐步排查可能存在的错误,比如:
    • 确认按钮的点击事件绑定是否正确,确保点击按钮时会触发 submitForm 方法。
    • 检查 Axios 的配置,确认是否正确引入和配置了 Axios。
    • 检查路由跳转逻辑,确保跳转逻辑没有影响到请求的发送。
    • 使用开发者工具检查网络请求,确认请求是否被发送,并查看请求的状态和响应内容。
    • 如果以上都没有问题,可以考虑在前端代码中添加一些日志输出或调试信息,以便更好地定位问题所在。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月17日
  • 创建了问题 4月16日

悬赏问题

  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块
  • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
  • ¥15 资源泄露软件闪退怎么解决?
  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现