我正在尝试从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对象发送。如果有人有任何想法,他们会非常感激。谢谢。约什
答案 0 :(得分:3)
每当传递给data
的{{1}}选项都是您示例中的对象时,实际发布的是表示对象的查询字符串。 forge.requests.ajax
选项仅允许您设置contentType
标头,它不会影响对象的请求编码方式。
但是,如果Content-Type
选项只是一个字符串,则此字符串将用作请求的主体。您可以使用data
生成一个JSON字符串作为正文使用,如下所示:
JSON.parse