开发者社区> 问答> 正文

vue post请求?报错

 

<template>
	<div class="login-box">
		<div class='login-main'>
			<div class="login-item">
				<label>用户名:</label>
				<input  type='phone' v-model='phone'/>
			</div>
			<div class="login-item">
				<label>密码:</label>
				<input  type='password' v-model='password'/><br  />
			</div>
			<div class="login-item">
				<button @click.stop='mylogin'>登录</button>
			</div>
		</div>
	</div>
</template>

<script>
export default {
  name: 'Login',
  data () {
    return {
    	phone:"18809234342",
    	password:"d70b44728ad9902aecba32e22fa1f6b6"
    }
  },
  computed:{
  	
  },
  methods:{ 
  	mylogin:function(){
  		this.$http({
  			url:this.$store.state.apiaddress+"/social/login/login",
  			method:"POST",
  			data:{
				"phone":this.phone,
				"password":this.password
			},
			 emulateJSON: true
  		}).then(function(data){
			console.log(data);
			this.$store.state.phone=2;
			this.$store.state.tokenId=2;
		},function(response){
			console.log(response);  				
		});
  	}
  }
}
</script>

<style scoped="scoped">
	.login-box{
		display: flex;
		flex-direction: column;
		align-items: center;
		height:600px;
		justify-content: center;
	}
	.login-main{
		border:solid 1px #eee;
		background:#eee;
		opacity: 0.8;
		height:200px;
		width:300px;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
	.login-item label{
		width:70px;
		text-align: left;
		display:inline-block;
	}
	.login-item{
		padding:10px;
	}
	.input{
		height:35px;
		line-height:35px;
		border:solid 1px #2C3E50;
	}
</style>

请求报错

  1. Response
    1. body:{code: 9001, message: "其他异常", exceptionDescription: "Required String parameter 'phone' is not present"}
    2. bodyText:"{"code":9001,"message":"其他异常","exceptionDescription":"Required String parameter 'phone' is not present"}"
    3. headers:Headers {map: {…}}
    4. ok:true
    5. status:200
    6. statusText:""
    7. url:"http://119.29.141.192:8080/api/social/login/login"
    8. data:(...)
    9. __proto__:Object

看样子是说缺少必须参数,但是我这里已经写了 

展开
收起
爱吃鱼的程序员 2020-06-07 22:34:21 730 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    你这样的话,后台拿不到参数,因为你传了个对象过去,如果是java,后台要写成@RequestBody而不是@RequestParam.你可以把url?phone=xxx这样传

    错误是后台没收到phone参数吧.$http请求里面post的参数是放在data里面的吗?好像放在body里面的吧?

    用工具抓包看一下

    2020-06-07 22:34:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Vue.js 在前端服务化上的探索与实践 立即下载
利用编译将 Vue 组件转成 React 组件 立即下载
Vue.js在前端服务化上的实践与探索 立即下载