Skip to content

Instantly share code, notes, and snippets.

@devyfriend
Last active February 27, 2018 20:23
Show Gist options
  • Save devyfriend/86e1e45b17f85d548beed493441b9c90 to your computer and use it in GitHub Desktop.
Save devyfriend/86e1e45b17f85d548beed493441b9c90 to your computer and use it in GitHub Desktop.
setup axios and php header
// php
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Origin: http://localhost:8080');
// js
window.app = {}
window.axios = require('axios')
window.axios.defaults.withCredentials = true
window.axios.interceptors.response.use(function (response) {
window.app.csrf = response.data.csrf
let nm = Object.keys(response.data.csrf)[0], key = response.data.csrf[nm];
return response;
}, function (error) {
return Promise.reject(error);
})
window.axios.defaults.transformRequest = function(data){
if(window.app && window.app.hasOwnProperty('csrf')){
let nm = Object.keys(window.app.csrf)[0], key = window.app.csrf[nm];
data[nm] = key;
}
return data;
}
/*
note to self:
- CORS always send OPTIONS request to server before actually send POST or GET to server
- process OPTIONS response from server to set/save csrf response for next ajax use (interceptors.response.use)
- append csrf data when POST to server (transformRequest)
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment