我正在开发一个存储在VPS上的Laravel 5.6项目(我们称之为“生产”,尽管没有这样的创建环境)。
我们还将Plesk& amp; Github将Web应用程序从我们的本地环境手动部署到服务器。
问题是我从他们返回的API加载一些数据错误405方法不允许( GET )...但实际上他们注册为在app.js
和routes/api.php
。
最棒的是,在我的本地环境中,他们的工作非常完美。
请求方法: GET
状态代码: 405方法不允许
以下是app.js
中的代码:
loadCountries: function loadCountries(total) {
axios.post('/api/properties/countries/').then(function (response) {
app.countries = response.data;
});
total = total <= this.countries.length ? total : this.countries.length;
if (total) {
var newArr = [];
for (i = 0; i < total; i++) {
newArr.push(this.countries[i]);
}
this.countries = newArr;
}
},
注意:如果我在开发人员工具中编辑相同的请求并再次发送,但作为POST请求它会返回一切正常,因此API似乎在POST请求上正常工作。
答案 0 :(得分:2)
尝试删除网址中的尾部斜杠。
,例如,
/api/properties/countries
替换原始app.js
中的那一行就可以了,
loadCountries: function loadCountries(total) {
axios.post('/api/properties/countries').then(function (response) {
app.countries = response.data;
});
total = total <= this.countries.length ? total : this.countries.length;
if (total) {
var newArr = [];
for (i = 0; i < total; i++) {
newArr.push(this.countries[i]);
}
this.countries = newArr;
}
},
答案 1 :(得分:0)
我遇到了这个问题,我通过使用具有完整网址的计算属性来解决它
computed: {
sendAnswersUrl: function () {
return window.location.protocol + "//" + window.location.hostname, + "/api/properties/countries";
}
}
然后在使用axios发布时
axios.post(this.sendAnswersUrl, {
group: this.id,
})
.then(data => {})
.catch(() => {});