Me gustaría enviar datos a un archivo php desde mi aplicación Vue para eventualmente guardar los datos en un archivo JSON. Si lo entiendo bien, puedo usar JQuery/Ajax para hacerlo como en cualquier otra aplicación que no sea vue:
methods: { postData() { $.ajax({ url: 'http://localhost:8080/test.php', type: 'POST', data: { data: {name: "test", age: "test"} }, complete: function(data, status) { if (status == 'success') { console.log('saved!'); } else { console.log('Error has been occurred'); } } }); } },Coloqué el archivo test.php en la carpeta pública:
<?php print_r($_POST); ?>Si abro http://localhost:8080/test.php, mi navegador descarga el archivo. Sin embargo, mi aplicación vue devuelve http://localhost:8080/test.php 404 (No encontrado) en la consola.
¿Dónde necesito colocar el archivo php? ¿Esto puede funcionar? ¡Agradecido por cualquier pista!
Editar: entregué el archivo desde otro puerto. En mi aplicación Vue, ejecuto este código en el gancho montado:
mounted() { $.ajax({ url: 'http://localhost:8888/test.php', dataType: 'jsonp', type: 'post', data: '{ "name":"test", "age":30, "city":"test" }', success: function( data ){ console.log(data) }, error: function(errorThrown){ console.error( errorThrown ); } }); }Esto arroja un error 200 en la consola. Mi archivo test.php simplemente contiene la siguiente línea:
<?php echo($_POST); ?> Si lo abro en mi navegador, dice Array : captura de pantalla test.php