接口测试问题,node写的后端接口,启动项目,浏览器能看到返回的字符串,postman测试返回一个错误的html代码?
练习前后端数据请求的时候,先用前端请求了网上免费接口,没问题数据拿到了。
测试本地后端接口,localhost:3000/users (这个是express项目生成时自带的router)
1、user.js
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('12344');
});
module.exports = router;
2、app.js(截取的,就是express项目生成时的代码)
var usersRouter = require('./routes/users');
app.use('/users', usersRouter);
3、用npm start启动项目,浏览器访问localhost:3000/users可以显示send的字符串
4、用postman测试localhost:3000/user接口,会返回一个显示错误信息的html结构
问:为什么两个测试方法结果不一样?
前端代码(只修改main.js和HelloWorld.vue)
index.js里添加
proxyTable: {
'/api': {
target:'http://localhost:3000/',
changeOrigin:true,
pathRewrite:{
'^/api': ''
}
}
},
main.js
import Vue from 'vue'
import App from './App'
import axios from 'axios'
Vue.prototype.axios = axios
Vue.config.productionTip = false
new Vue({
el: '#app',
components: { App },
template: '<App/>'
})
app.vue(原封不动)
HelloWorld.vue
<template>
<div class="hello">
<h1>{{ msg }}</h1>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
},
mounted(){
//请求的接口
this.axios.get("/api/users").then((res)=>{
console.log(res);
})
}
}
</script>
<style scoped>
h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>
访问localhost:8080,能拿到send的字符串了
控制台显示
但是再它返回的信息中有个
responseURL是响应的地址吧?不应该是localhost:3000响应的么?
api不是自动替换成localhost:3000么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
content-type: application/json
之类,导致服务器按照 json 格式解析请求,报错了:8080/api/users
,只不过代理帮你 转接 了过去,并不是 替换,所以requestURL
也没错。你postman里输入的url有问题吧
我用你的代码复现不出来 说明你给出的代码是没问题的
问题出在其他地方
最好把完整的代码放上来,前端和node的,目前看不出什么问题来。
不过400是客户端错误的提示,应该和node代码没什么关系。