我可以模拟提供的数据的方式是什么,例如Vue.js-CLI项目中的某种服务器脚本,它将在开发过程中为端口8081上的AJAX调用提供模拟数据,从而避免所有跨站点脚本问题?
在我的config/index.js
文件中,我添加了一个proxyTable:
dev: {
env: require("./dev.env"),
port: 8081,
autoOpenBrowser: true,
assetsSubDirectory: "static",
assetsPublicPath: "/",
proxyTable: {
"/api": {
target: "http://localhost/data.php",
changeOrigin: true
}
},
现在我按照这样的方式进行AJAX调用:
axios({
method: 'post',
url: '/api',
data: {
smartTaskIdCode: 'activityReport',
yearMonth: '2017-09',
pathRewrite: {
"^/api": ""
}
}
但现在我在JavaScript控制台中看到了:
错误:请求失败,状态代码为404
表观axios有重新路由问题,所以我尝试使用vue-resource但是这段代码显示错误:
var data = {
smartTaskIdCode: 'pageActivityByMonth',
yearMonth: '2017-09'
}
this.$http.post('/api', data).then(response => {
this.pageStatus = 'displaying';
this.activity = response.data['activity'];
console.log(this.activity);
}, response => {
this.pageStatus = 'displaying';
console.log('there was an error');
});
答案 0 :(得分:1)
webpack模板有自己的文档,在开发过程中有一章关于API代理:
http://vuejs-templates.github.io/webpack/proxy.html
如果您使用它,则意味着您将在开发期间从节点服务器请求您的数据(并且节点服务器将代理<对您的真实后端的请求),以及直接在生产中的真实后端,因此您将拥有在每个环境中使用不同的主机名。
为此,您可以在/config/dev.env.js
&中定义一个env变量。 /config.prod.env.js