Configuré el encabezado común de axios Content-Type = application/json con el siguiente código:
axios.defaults.headers.common['Content-Type'] = 'application/json'; Pero cuando traté de usar axios.post('apiurl', json) , el tipo de contenido del navegador sigue siendo application/x-www-form-urlencoded
Traté de usar axios.post('Get_Office_PO_NO_Data', json, { headers: { 'content-type': 'application/json' } }) y axios puede solicitar application/json content type
Según la documentación , desea post , no common :
axios.defaults.headers.post['Content-Type'] = 'application/json'; // −−−−−−−−−−−−−−−−−−−−^^^^ Lo cual tiene sentido; otros tipos de solicitud ( GET , DELETE , etc.) no tienen ningún cuerpo de solicitud al que aplicar el tipo de contenido. ( PUT y PATCH sí, pero supongo que pensaron que era poco probable que quisieras establecer el mismo tipo de contenido predeterminado para POST y PUT , o era solo el capricho del desarrollador).
(Alternativamente, puede considerar crear una instancia con sus valores predeterminados a través de axios.create y luego usar la instancia. Cambiar los valores predeterminados globales siempre me incomoda un poco. :-))