Estoy tratando de hacer una solicitud de publicación con los siguientes parámetros:
const postParams = { 'submission': submission };
Sin embargo, cuando la solicitud se envía realmente, observo que el submission se convierte en submission[] en la pestaña de red del navegador. Esto es problemático porque mi servidor espera el submission y no el submission[] . Consulte la imagen a continuación para obtener más información.
[Tenga en cuenta que [] se adjuntó al submission ][1] [1]: https://i.stack.imgur.com/pXpNq.png
Tenga en cuenta que el envío (la variable) es una matriz de números enteros, por lo que si bien tiene sentido por qué se adjunta [], ¿hay alguna forma de deshacerse de eso?
A continuación se muestra la función completa.
const postParams = { submission: str_sub }; console.log(postParams) $.post(root+'/problems/multiple_choice/'+problem_pk+'/run', postParams, function(data) { // Omitted / not relevant }) .fail(function(jqXHR, textStatus, errorThrown) { console.log(textStatus); });Este es el comportamiento predeterminado de jQuery donde sigue las convenciones de PHP (en lugar de las tradicionales).
Consulte la documentación .
Use .ajax en lugar de .post e incluya traditional: true en el objeto de opciones.
$.ajax( root+'/problems/multiple_choice/'+problem_pk+'/run', { data: postParams, traditional: true, success: (data) => { ... } }(