【发布时间】:2012-11-20 11:05:14
【问题描述】:
我正在尝试对来自 Trigger.io 的用户进行身份验证,最好是通过 Facebook。
我通过 Facebook(使用 Parse Facebook 模块)对用户进行身份验证,并将他们的访问令牌、访问到期日期和 Facebook ID 传递给我对 Parse 的调用。
这里出了问题。每当我尝试通过 Ajax 将此数据发布到 Parse REST API 时,我的 forge/Trigger 控制台读取错误:
{ 类型:'EXPECTED_FAILURE',内容:'{"code":107,"error":"这个 端点只支持 Content-Type: application/json 请求,不支持 应用程序/x-www-form-urlencoded."}',状态代码:'400',消息: '从服务器收到的 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 对象发送。如果有人有任何想法,他们将不胜感激。谢谢。乔什。
【问题讨论】:
-
您能否尝试在传递给 forge.request.ajax 的选项对象中设置 contentType 属性。而不是直接在标题中设置“Content-Type”?
-
酷 - 谢谢阿米尔 - 这确实有帮助。虽然我现在得到以下信息: { type: 'EXPECTED_FAILURE', [INFO] content: '{"code":107,"error":"invalid json: authData%5Bfacebook%5D%5Bid%5D=199714297&authData%5Bfacebook%5D %5Baccess_token%5D = BAAE5X1h2zPQBAALpl90JLv5hu8phZA0LwQi8xeNAPdZA9HVNL1kNeNceWuuXYTZBHoAx3AVmgTpRFwu9uFRsUK7ER4bwZCmw0EeZBlTLbrVUneyKp8CRASp3Gux2h5ZCSceUD5rUikmAZDZD&的authData%5Bfacebook%5D%5Bexpiration_date%5D = 2013-01-18T23%3A45%3A33.601Z“} '[INFO]的StatusCode: '400',[INFO]消息:' 从接收到的HTTP错误代码server: 400' } 不是 100% 确定原因,但我会继续玩。
标签: ajax rest trigger.io parse-platform