Estoy usando una cuchilla Laravel.
Mi código a continuación ocurre un error cuando el tamaño del elemento del área de texto es enorme. Estoy buscando una manera de solucionarlo.
Todo el mundo. ¿Cómo debo enviar un texto enorme al servidor? ¿Cómo debo modificar mis códigos?
Hoja (JavaScript)
function sendByGet() { var items = document.getElementById("item").value; var param = "?items="+items+"&id={{$id}}"; var url = {{(url)}} + encodeURI(param); let result = fetch(url); result.then(response => response.json()).then( responceObject =>{ } } }Controlador PHP
public function receivebyGet(Request $request) { $lineArray = array(); $slipData = explode("\n", $request->items);Error
la fecha reemplaza a <huge_text> (los datos reales son texto (5000 caracteres))
phpbladeName?id=01:270 GET https://test.com/test/send_by_get?&item= <huge_text> 414 sendByGet @ confirmación?id=01:270 onclick @ confirm?id=0:244 VM142:1 No detectado (en promesa) SyntaxError: Final inesperado de la entrada JSON en phpbladeName?id=01
function sendByGet(url) { const items = document.getElementById("item").value; const param = encodeURI("?id={{$id}}"); fetch(url + param, { method: 'GET', headers: { 'Content-Type': 'plain/text' }, body: items, }) .then(response => response.json()) .then( ... ); }Controlador PHP (suponiendo que sea Laravel)
public function receivebyGet(Request $request) { $lineArray = array(); $slipData = explode("\n", $request->getContent()); ... } Como menciona Peter Krebs , el tamaño máximo de URL (que incluye la consulta) es de 2000 caracteres. Por lo tanto, no puede esperar que su sistema funcione de manera confiable si la url es más larga que 2000. Lea más aquí .
Como señaló Jabaa , debe elegir el método semánticamente, no técnicamente. Pero esto es algo que ha evolucionado con el tiempo (inicialmente se suponía que el cuerpo GET debía ser rechazado/ignorado) lea más aquí . Por lo tanto, debe considerarlo cuidadosamente y verificar que todas las partes involucradas (servidor, navegador, proxies, caché) lo admitan correctamente. Esta es la razón por la que a menudo los desarrolladores eligen violar la semántica y utilizar un método POST .