值得 returns HTML resp (Laravel +BOH)
Axios returns HTML response (Laravel +VUE)
我的 api.php
中有两条路线。
Route::get('resume-list/{templateID}', 'BasicController@getAllResumes');
Route::get('resume/single/{id}', 'BasicController@getResume');
第一个工作正常,但第二个路由 returns 索引页面的 html 代码。
下面是路由的 axios 调用:
data() {
return {
id: this.$route.params.id,
data: {}
};
},
methods: {
loadData() {
axios.get("api/resume/single/" + this.id).then(response => {
console.log(response);
this.data = response;
});
}
},
created() {
this.loadData();
}
后端函数
public function getResume($id)
{
return Basic::where('id', $id)->firstOrFail();
}
出现此代码的原因是什么?
Bootstrap.js
window._ = require('lodash');
window.Popper = require('popper.js').default;
try {
window.$ = window.jQuery = require('jquery');
require('bootstrap');
require('admin-lte');
} catch (e) {}
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
尝试手动转换 - https://laravel.com/docs/5.1/responses#json-responses
如果不行,问题出在配置路由器
这样设置
window._ = require('lodash');
window.Popper = require('popper.js').default;
try {
window.$ = window.jQuery = require('jquery');
require('bootstrap');
require('admin-lte');
} catch (e) {}
window.axios = require('axios');
//window.axios.defaults.baseURL = process.env.APP_URL;
window.axios.defaults.baseURL = 'http://localhost:8000';
window.axios.defaults.headers.common = {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type':'application/json',
'Accept':'application/json'
};
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
Now your axios call will become
loadData() {
axios.get(`/api/resume/single/${this.$route.params.id}`).then(response => {
console.log(response);
});
}
OR
"/api/resume/single/"+this.id
我的 api.php
中有两条路线。
Route::get('resume-list/{templateID}', 'BasicController@getAllResumes'); Route::get('resume/single/{id}', 'BasicController@getResume');
第一个工作正常,但第二个路由 returns 索引页面的 html 代码。
下面是路由的 axios 调用:
data() {
return {
id: this.$route.params.id,
data: {}
};
},
methods: {
loadData() {
axios.get("api/resume/single/" + this.id).then(response => {
console.log(response);
this.data = response;
});
}
},
created() {
this.loadData();
}
后端函数
public function getResume($id)
{
return Basic::where('id', $id)->firstOrFail();
}
出现此代码的原因是什么?
Bootstrap.js
window._ = require('lodash');
window.Popper = require('popper.js').default;
try {
window.$ = window.jQuery = require('jquery');
require('bootstrap');
require('admin-lte');
} catch (e) {}
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
尝试手动转换 - https://laravel.com/docs/5.1/responses#json-responses
如果不行,问题出在配置路由器
这样设置
window._ = require('lodash');
window.Popper = require('popper.js').default;
try {
window.$ = window.jQuery = require('jquery');
require('bootstrap');
require('admin-lte');
} catch (e) {}
window.axios = require('axios');
//window.axios.defaults.baseURL = process.env.APP_URL;
window.axios.defaults.baseURL = 'http://localhost:8000';
window.axios.defaults.headers.common = {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type':'application/json',
'Accept':'application/json'
};
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
Now your axios call will become
loadData() {
axios.get(`/api/resume/single/${this.$route.params.id}`).then(response => {
console.log(response);
});
}
OR
"/api/resume/single/"+this.id