axios与springboot后端交互错误

错误信息:
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:113)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:73)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:19)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:113)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:73)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:19)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:113)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:73)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:19)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:113)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:73)
at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:19)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:666)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:156)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:575)
User.java

package per.czt.onlineshop.pojo;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import com.fasterxml.jackson.annotation.JsonIgnore;

@Entity
@Table(name="mall_user")
@EntityListeners(AuditingEntityListener.class)
public class User   implements Serializable {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="mall_user_id")
	private Integer id;
	
	@Column(name="mall_user_username")
	private String username;
	
	@Column(name="mall_user_nickname")
	private String nickname;
	
	@Column(name="mall_user_sex")
	private String sex;
	
	@Column(name="mall_user_userhead")
	private String userhead;
	
	@Column(name="mall_user_password")
	private String password;
	
	@Column(name="mall_user_phoneNum")
	private String phoneNum;
	
	@Column(name="mall_user_email")
	private String email;
	

	@OneToMany(mappedBy="user",cascade=CascadeType.PERSIST,fetch=FetchType.EAGER)
	private Set<Order> orders=new HashSet<Order>();


	@OneToMany(mappedBy="user",cascade=CascadeType.PERSIST,fetch=FetchType.EAGER)
	private Set<ProductComment> productComments=new HashSet<ProductComment>();

	public Integer getId() {
		return id;
	}


	public void setId(Integer id) {
		this.id = id;
	}


	public String getUsername() {
		return username;
	}


	public void setUsername(String username) {
		this.username = username;
	}


	public String getNickname() {
		return nickname;
	}


	public void setNickname(String nickname) {
		this.nickname = nickname;
	}


	public String getSex() {
		return sex;
	}


	public void setSex(String sex) {
		this.sex = sex;
	}


	public String getUserhead() {
		return userhead;
	}


	public void setUserhead(String userhead) {
		this.userhead = userhead;
	}


	public String getPassword() {
		return password;
	}


	public void setPassword(String password) {
		this.password = password;
	}


	public String getPhoneNum() {
		return phoneNum;
	}


	public void setPhoneNum(String phoneNum) {
		this.phoneNum = phoneNum;
	}


	public String getEmail() {
		return email;
	}


	public void setEmail(String email) {
		this.email = email;
	}


	public Set<Order> getOrders() {
		return orders;
	}


	public void setOrders(Set<Order> orders) {
		this.orders = orders;
	}


	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", nickname=" + nickname + ", sex=" + sex + ", userhead="
				+ userhead + ", password=" + password + ", phoneNum=" + phoneNum + ", email=" + email + "]";
	}


	public User() {
		super();
		// TODO Auto-generated constructor stub
	}


	public Set<ProductComment> getProductComments() {
		return productComments;
	}


	public void setProductComments(Set<ProductComment> productComments) {
		this.productComments = productComments;
	}

	
}

login.vue

<template>
  <div v-wechat-title="title">
    <el-row type="flex" justify="center">
      <el-form :model="user" :rules="rules" ref="loginForm">
        <el-form-item label="邮箱" prop="email">
          <el-input type="email" v-model="user.email" clearable></el-input>
        </el-form-item>
        <el-form-item label="密码" prop="password">
          <el-input type="password" v-model="user.password" id="password" clearable show-password></el-input>
        </el-form-item>
        <el-button-group>
          <el-button type="primary" v-on:click="submitForm('loginForm')" :round="false">{{message}}</el-button>
          <el-button  @click="goRegister">去注册<i class="el-icon-right" :round="false"></i></el-button>
        </el-button-group>
      </el-form>

    </el-row>
  </div>

</template>
<script>
import axios from 'axios'
export default {
  name: 'loginForm',
  data () {
    return {
      title: '用户登录',
      user: {
        email: '',
        password: ''
        /* userhead: '',
        nickname: '',
        sex: '',
        phoneNum: '',
        id: '' */
      },
      rules: {
        email: [
          {required: true, message: '请输入邮箱', trigger: 'blur'},
          {min: 6, max: 20, message: '用户名长度在6-20个字符之间', trigger: 'blur'}
        ],
        password: [
          {required: true, message: '请输入密码', trigger: 'blur'},
          {min: 6, max: 16, message: '密码长度在8-16个字符之间', trigger: 'blur'}
        ]
      }
    }
  },
  props: {
    message: {
      default: '登录'
    }
  },
  methods: {
    login () {
      console.log('login')
      axios({
        url: 'http://127.0.0.1:8081/user/login',
        method: 'get',
        params: {
          email: this.user.email,
          password: this.user.password
        }
      }).then(response => {
        console.log('response:' + response.data)
        if (response.data != null && response.data !== '') {
          console.log('登录成功')
          this.$router.push('/index')
        } else {
          console.log('用户名或密码错误')
        }
      }).catch(error => {
        console.log('error:' + error)
      })
      this.$emit('login')
    },
    goRegister () {
      this.$router.push('/register')
    },
    submitForm (formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          this.login()
        } else {
          console.log('error submit')
          return false
        }
      })
    }
  }
}
</script>

<style scoped>

</style>

原因:对象之间互相包含,我这里使用了springdata,有关联的两个类都进行了配置,导致对象互相包含
解决方法:
加Ignore注解

    @JsonIgnore
	@OneToMany(mappedBy="user",cascade=CascadeType.PERSIST,fetch=FetchType.EAGER)
	private Set<Order> orders=new HashSet<Order>();

	@JsonIgnore
	@OneToMany(mappedBy="user",cascade=CascadeType.PERSIST,fetch=FetchType.EAGER)
	private Set<ProductComment> productComments=new HashSet<ProductComment>();

问题解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值