将变量从javascript传递到JSON POST-获取非法令牌

passing variable from javascript to JSON POST- getting Illegal token

本文关键字:POST- JSON 获取 非法 令牌 变量 javascript      更新时间:2023-09-26

这是我的代码:

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");
           }
       });
 }

当我运行这个程序时,在注释掉整个$.ajax部分时,我会收到一个值为tok的警报,但如果我留在$.ajax中,我会在"data:'{utoken:'+tok+'"行上收到一个非法令牌(在Chrome中)。

我犯了什么错?

感谢

JavaScript字符串文字中不允许使用换行符,因此它在,platform之间出错。

即使您没有这个问题,您生成的内容离JSON还有很长的路要走。停止尝试手动生成。构造一个JavaScript对象并通过JSON.stringify.传递

data: JSON.stringify({
    utoken: tok,
    platform: "general",
    email:"test@gmail.com"
}),

我认为可以使用+而不是,来分隔字符串中的行。此外,您应该在每行的开头和结尾添加"。

data: '{ utoken:' + tok + ',' +
      'platform: "general",' +
      'email:"test@gmail.com"' +
      '}',