Estoy usando código de la aplicación Postman para crear un formulario de autenticación AJAX simple en un sitio web. No estoy muy familiarizado con Postman y esto es lo que hice. Primero configuré todas las cosas del formulario (botón obtener, obtener campos de entrada, luego ejecutar la función al hacer clic):

var registerbtn = document.getElementById("register");

var regemail = document.getElementById("regemail").value;
var regfirst = document.getElementById("regfirst").value;
var reglast = document.getElementById("reglast").value;
var regpass1 = document.getElementById("regpass1").value;
var regpass2 = document.getElementById("regpass2").value;

registerbtn.addEventListener("click", newRegister);

Luego tomé el código de la aplicación cartero para una solicitud de Jquery Ajax. Tenía el siguiente aspecto:

function newRegister() {
  var settings = {
    "async": true,
    "crossDomain": true,
    "url": "{{https://some url}}",
    "method": "POST",
    "headers": {
      "Content-Type": "application/x-www-form-urlencoded",
      "cache-control": "no-cache",
      "Postman-Token": "{{some token}}"
    },
    "data": {
      "password": regpass1,
      "passwordConfirmation": regpass2,
      "firstName": regfirst,
      "email": regemail,
      "lastName": reglast
    }
  }

  $.ajax(settings).done(function (response) {
    console.log(response);
  });
}

El problema que tengo es que cuando codifico las variables en alguna cadena (como en lugar de regemail, pongo "email@email.com"), el código funciona y se carga en el servidor, pero usando estas variables no es asi. Recibo un error 400 (solicitud incorrecta). No tengo acceso al cajero automático del servidor.

¿Qué error estoy cometiendo con las variables de entrada? Intenté JSON.stringify los valores, pero eso no ayudó.

Ya he desactivado CORS para fines de desarrollo.

0
Sidhant Mathur 16 oct. 2018 a las 23:50

2 respuestas

La mejor respuesta

El problema era de alcance variable; Debería haber puesto las variables dentro de la función.

0
Sidhant Mathur 20 oct. 2018 a las 18:51

Puedes intentar agregar:

contentType: "application/json"
0
Jarek Wichrowski 16 oct. 2018 a las 21:23