用vue访问接口能正常返回数据,但是报500错误,用postman提交一样的参数请求也正常,这是为啥呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用vue访问接口能正常返回数据,但是报500错误,用postman提交一样的参数请求也正常,这是为啥呢?相关的知识,希望对你有一定的参考价值。

如题,刚接触vue,没有买域名,所以直接用ip访问,试过用80端口或者其他端口访问都是这样,百思不得其解,求大神指点下前端用的是vue+elementUI

后端用的是php+nginx ,端口正常开放,如果代码在本地执行,也是正常的基本排除代码问题了

参考技术A 我的也是用POSTman可以获取数据,我这边用axios去获取,加了application/x-www-form-urlencoded也是传不过来数据,一直报500,说是XMLhttp请求不对,困扰了好几天了,一直在想有没有人专写一个接口组件,可以接受各种类型的接口,每次还要去针对的写,太麻烦.什么form-data,x-www-form-urlencoded 参考技术B 首先状态码是可以被后台设置的,2xx表示成功,3xx表示缓存或重定向,4xx找不到资源或请求有错误,5xx服务器出错。有数据返回可以排除前端问题,找后台检查下处理逻辑。 参考技术C 猜测是Content-Type错误,postman选择的是form-data, 浏览器传递的http request中Content-Type是application/x-www-form-urlencoded, 所以可能后端取不到值所以报错。
谢谢采纳!
参考技术D

我也是这样,报错500,但是接口正常返回。你最后怎么解决的呢

vue部署到宝塔请求接口报404错误

问题

我将前端vue和后端Spring Boot全部都部署到了宝塔上,后端项目部署成功后直接请求接口成功,运行本地vue项目使用代理服务器访问接口也是成功的,但是部署到vue上的项目访问接口报404错误

解决

经向某位大佬求教后找到了解决办法:需要配置宝塔上的nginx代理才行,解决步骤如下:

  1. 点击nginx的设置(如果没有nginx就在同一页面搜索安装即可)
  2. 点击配置修改,鼠标滑动到页面最底部,复制红框里这个路径/www/server/panel/vhost/nginx(配置修改这个文件尽可能不要做改动)
  3. 点击文件,复制该路径
  4. 在该页面新建一个以.conf为结尾的配置文件,比如:haha.conf
  5. 双击haha.conf进行编辑,内容如下:
	server 
	    listen  81; // 监听81端口
	    server_name localhost; // 因为我的后端和前端都部署到了宝塔上,所以server_name可以直接写localhost
	    
	    // 配置代理
	    /* 
	    	第一个代理含义:
	    	  我的网站地址是http://120.77.8.124:81/#/login/passLogin,
	    	  当它看到81后的第一条斜杠时会到`/www/wwwroot/120.77.8.124`路径底下找index.html页面
	    */
	    location / 
	        index index.html;
	        root /www/wwwroot/120.77.8.124;
	    
	    
	   	/* 
	   		配置接口代理
	   		    我前端的代理服务器代码块下的图所示。
	   		^~/api/:当nginx看到路由中包含/api/会自动将/api/去到,并将/api/前边的部分替换成`http://localhost:15050/`
	    */
	    location ^~/api/ 
	        proxy_pass http://localhost:15050/;
	    
	

经过上边这些步骤就能成功访问接口了

以上是关于用vue访问接口能正常返回数据,但是报500错误,用postman提交一样的参数请求也正常,这是为啥呢?的主要内容,如果未能解决你的问题,请参考以下文章

关于tomcat启动服务单独启动时ngrok报500错误的解决办法

总结之踩过的后台服务报500的坑

接口调用报415错误

vue 打包部署服务路径接口报错已解决

vue跨域请求时报403

关于Apache php 报500错误