Trigger.io Ajax请求 - 使用Parse Facebook用户身份验证

时间:2012-11-20 11:05:15

标签: ajax rest trigger.io parse-platform

我正在尝试从Trigger.io验证用户,最好通过Facebook验证用户。

我通过Facebook验证用户(使用Parse Facebook模块),并将他们的访问令牌,访问到期日期和Facebook ID传递给我对Parse的调用。

这里出了问题。每当我尝试通过Ajax将这些数据发布到Parse REST API时,我的forge / Trigger控制台读取错误:

  

{type:'EXPECTED_FAILURE',内容:'{“代码”:107,“错误”:“这   端点仅支持Content-Type:application / json请求,而不支持   application / x-www-form-urlencoded。“}',statusCode:'400',message:   '从服务器收到的HTTP错误代码:400'}

我以前尝试发布此数据的代码是......

function auth(facebookId,accessToken,expirationDate) {
    forge.logging.log('auth started');
    forge.request.ajax({
        url: 'https://api.parse.com/1/users',
        headers: {
            'X-Parse-Application-Id': config.parseAppId,
            'X-Parse-REST-API-Key': config.parseRestKey,
            'Content-Type': 'application/json'
        },
        type: 'POST',
        dataType: 'json',
        data: {
            "authData": {
                "facebook": {
                    "id" : facebookId,
                    "access_token": accessToken,
                    "expiration_date": expirationDate
                  }
            }
        },
        success: function (data) {
            forge.logging.log('auth finished 1');
            forge.logging.log(data);
        },
        error: function(error){
            forge.logging.log('auth finished 2');
            forge.logging.log(error);
        }
    })//success
} //auth

我无法弄清楚如何以正确的格式将其作为JSON对象发送。如果有人有任何想法,他们会非常感激。谢谢。约什

1 个答案:

答案 0 :(得分:3)

每当传递给data的{​​{1}}选项都是您示例中的对象时,实际发布的是表示对象的查询字符串。 forge.requests.ajax选项仅允许您设置contentType标头,它不会影响对象的请求编码方式。

但是,如果Content-Type选项只是一个字符串,则此字符串将用作请求的主体。您可以使用data生成一个JSON字符串作为正文使用,如下所示:

JSON.parse