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

时间:2014-09-01 11:22:06

标签: javascript json

这是我的代码:

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中,我会得到一个非法令牌(在Chrome中)数据:'{utoken:'+ tok +',“line。

我的错误是什么?

由于

2 个答案:

答案 0 :(得分:2)

JavaScript字符串文字中不允许使用新行字符,因此,platform之间存在错误。

即使你没有遇到这个问题,你还有很长的路要走JSON。不要试图手动生成它。构造一个JavaScript对象并通过JSON.stringify传递它。

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

答案 1 :(得分:0)

我认为您可以使用+代替,来分隔字符串中的行。你也应该在每一行的开头和结尾添加'。

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