Tengo un problema con un proyecto de práctica que estoy tratando de escribir en Reactjs. Este es solo un proyecto básico de reacción, no estoy usando flux ni nada. El proyecto se ha configurado mediante create-react-app.

Solo estoy probando un procedimiento simple para obtener algunos datos simulados de un archivo json local (usando la biblioteca axios). La idea eventualmente es construir un archivo php que pueda devolver datos o actualizar una base de datos mysql. El problema es que la reacción sigue diciendo "404 no encontrado" en el archivo local en cuestión.

Ejemplo:

    axios.get('./ajax.json')
            .then(function (result) {
                console.log(result);
            });

Todo lo que obtengo es "404 no encontrado" en el archivo ajax.json. He probado diferentes formas de referirme a él, pero todo lo que obtengo es "No encontrado".

Eventualmente, me gustaría que la aplicación React se comunique con una clase php que he escrito a través de ajax, para que guarde información en una base de datos local. El archivo "ajax.json" que estoy usando fue algo rápido para propósitos de prueba. También lo intenté con un archivo php, pero obtuve el mismo resultado.

Estoy ejecutando la aplicación con "npm start". Me pregunto si esto tiene algo que ver. No puedo encontrar instrucciones en ninguna parte sobre cómo comunicarme con archivos php locales usando el servidor de reacción integrado (que se usa con npm start).

Me las arreglé para hacer una llamada ajax exitosa desde el sitio web fakejsonplaceholder, pero esto está usando una llamada http: //, no una local.

¿Existe alguna forma especial de hacer esto con React? ¿Qué me estoy perdiendo?

Gracias.

1
Frank Smith 13 dic. 2016 a las 22:02

2 respuestas

La mejor respuesta

Su aplicación React se está ejecutando en su navegador, que no tiene acceso a su sistema de archivos. Si pudiera recuperar archivos directamente desde el navegador, tendría un problema de seguridad importante en sus manos. Necesita entregar sus datos json desde un servidor, o recomendaría copiar los datos json en http://myjson.com/ que le proporcionará una URL que puede obtener para realizar pruebas.

1
azium 13 dic. 2016 a las 19:11

No estoy seguro de si es una respuesta definitiva, pero al final comencé a perder el tiempo y encontré el éxito cuando puse mi archivo json en mi carpeta "pública" de mi proyecto. Muchas gracias azium Realmente aprecio tus comentarios.

1
Frank Smith 14 dic. 2016 a las 19:41