Tengo una función AJAX ejecutándose desde mi interfaz con este aspecto:
//api.js function getTransactions(authToken) { $.ajax({ type: 'GET', data: { 'authToken': '', }, crossDomain: true, dataType: 'JSON', url: 'http://localhost:8000/transactions', }).done(function (data) { .....He estado tratando de pasar el parámetro authToken al objeto de datos y luego recuperarlo en el backend de PHP usando (transacciones de casos):
//index.php $request = $_SERVER["REQUEST_URI"]; switch ($request) { case "/login" : require __DIR__ . "/login.php"; $userEmail = $_POST["userEmail"]; $userPassword = $_POST["userPassword"]; echo login($userEmail, $userPassword); break; case "/transactions" : require __DIR__ . "/transactions.php"; $authToken = $_GET["authToken"]; getTransactions($authToken); break; } Si codifico el authToken en la función getTransactions dentro del case "/transactions" , funciona bien.
(EDITAR: incluso si codifico el token en index.php , si también lo codifico en la función AJAX (lo que no debería importar), todo el proceso no devuelve ningún dato).
Pero hay algo, ya sea en $_GET() en index.php, o en la función AJAX que impide que los datos entren en la función getTransactions en index.php.
He intentado poner cadenas alrededor de la clave authToken en el objeto de datos, también usando el parámetro authToken, así como JSON.stringify-ing el objeto de datos. Además, cambié/eliminé el tipo de datos y agoté todos los demás métodos sugeridos por el desbordamiento de pila y otros sitios web.
Esto es especialmente difícil porque es la primera vez que uso PHP y no sé cómo mostrar echo s en mi terminal, por lo que no puedo ver ningún resultado de los archivos PHP.
Cualquier ayuda sería apreciada.
como dijo @CBroe, el parámetro de consulta authToken estaba interfiriendo con el enrutamiento para /transactions . Lo que hice fue agregar este código a mi variable $request :
$request = strtok($_SERVER["REQUEST_URI"], "?"); la strtok() me permitió eliminar el final del URI antes del ? , y el caso /transactions se leyó correctamente.
Gracias CBroe!