58 lines
1.9 KiB
Markdown
58 lines
1.9 KiB
Markdown
## ✅ Problema del Error 500 Corregido
|
|
|
|
### 🐛 Causa del Error:
|
|
Al pegar una imagen desde el portapapeles y enviarla, las peticiones `fetch` a los endpoints de API **NO estaban enviando las cookies de sesión**, causando que:
|
|
1. `upload_media.php` rechazara la petición → Error 401
|
|
2. Nginx devolviera error 500 por fallo en PHP
|
|
|
|
### 🔧 Solución Aplicada:
|
|
|
|
Agregué `credentials: 'same-origin'` a ambos fetch en `sendMediaMessage()`:
|
|
|
|
```javascript
|
|
// 1. Upload del archivo
|
|
const uploadResponse = await fetch('api/upload_media.php', {
|
|
method: 'POST',
|
|
credentials: 'same-origin', // ✅ Enviar cookies de sesión
|
|
body: formData
|
|
});
|
|
|
|
// 2. Envío del mensaje
|
|
const sendResponse = await fetch('api/send_media_message.php', {
|
|
method: 'POST',
|
|
credentials: 'same-origin', // ✅ Enviar cookies de sesión
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({...})
|
|
});
|
|
```
|
|
|
|
### 📋 Cómo Funciona Ahora:
|
|
|
|
1. **Copias una imagen** (Ctrl+C o Cmd+C)
|
|
2. **Haces click en el input de mensaje**
|
|
3. **Pegas** (Ctrl+V o Cmd+V)
|
|
4. ✅ Aparece el preview de la imagen
|
|
5. ✅ Haces click en "Enviar"
|
|
6. ✅ Se sube el archivo con autenticación correcta
|
|
7. ✅ Se envía por WhatsApp
|
|
8. ✅ Aparece en la conversación
|
|
|
|
### 🧪 Probar Ahora:
|
|
|
|
1. Recarga la página: http://localhost:8080/conversations.php
|
|
2. Abre una conversación
|
|
3. Copia una imagen desde cualquier lugar
|
|
4. Haz click en el input de texto
|
|
5. Presiona Ctrl+V (o Cmd+V en Mac)
|
|
6. Debe aparecer el preview sin errores
|
|
7. Haz click en enviar
|
|
8. Debe enviarse correctamente
|
|
|
|
### 📝 Nota Técnica:
|
|
|
|
Por defecto, `fetch()` **NO envía cookies** a menos que especifiques:
|
|
- `credentials: 'same-origin'` → Envía cookies al mismo dominio
|
|
- `credentials: 'include'` → Envía cookies incluso en CORS
|
|
|
|
El endpoint `upload_media.php` usa `requireAuthentication()` que verifica la sesión en cookies, por eso fallaba antes.
|