下記コードのようにHTMLとJSON両方に対応しているようなリソースにアクセスする場合は、X-Requested-With
をヘッダーに付与しておく必要がある。
respond_to do |format|
format.html
format.json { render json: @user }
end
axiosのデフォルトに設定しておくと毎回書かなくて良いので楽。
const axios = require('axios');
axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest';
axios.get('/users/1').then((response) => {
console.log(response.data);
});