Aquí está mi código:

function OnSuccess(response) {
        var tok = response.access_token;
        alert(tok);
        $.ajax({
           type: "POST", 
           url: "https://webservice.com/apps/purchases/mass_create",
           data: '{ utoken:' + tok + ',
                    platform: "general",
                    email:"test@gmail.com"
                  }',
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           success: function(response) {
               alert("Success 2");
           },
           failure: function(response) {
                alert("failure 2");
           }

       });
 }

Cuando ejecuto esto, al comentar toda la sección $ .ajax, recibo una alerta con el valor de tok, pero si salgo en $ .ajax, obtengo un Token Ilegal (en Chrome) en los "datos:" {utoken: '+ tok +', "línea.

¿Cuál es mi error?

Gracias

0
Yoni 1 sep. 2014 a las 15:22

2 respuestas

La mejor respuesta

Los caracteres de líneas nuevas no están permitidos en los literales de cadena de JavaScript, por lo que los errores entre , y platform.

Incluso si no tuvo ese problema, lo que está generando está muy lejos de JSON. Deja de intentar generarlo a mano. Construya un objeto JavaScript y páselo a través de JSON.stringify.

data: JSON.stringify({
    utoken: tok,
    platform: "general",
    email:"test@gmail.com"
}),
2
Quentin 1 sep. 2014 a las 12:08

Creo que puede usar + en lugar de, para separar líneas en cadenas. También debe agregar 'al principio y al final de cada línea.

data: '{ utoken:' + tok + ',' +
      'platform: "general",' +
      'email:"test@gmail.com"' +
      '}',
0
sergiomse 1 sep. 2014 a las 12:18