我目前正在使用 Facebook JavaScript SDK 和 Scores API ( https://developers.facebook.com/docs/score/ )。我写了一个小应用程序来保存(发布)分数,现在我想删除分数。发布(保存)它们可以正常工作。
我的代码如下所示:
var deleteHighScoreUrl = 'https://graph.facebook.com/'+facebook.user.id+'/scores?access_token='+facebook.application.id+'|'+facebook.application.secret;
jQuery.ajax(
{
type: 'DELETE',
async: false,
url: deleteHighScoreUrl,
success: function(data, textStatus, jqXHR)
{
console.log('Score deleted.');
}
});
“facebook”变量是一个保存我的应用程序数据的对象。对于 HTTP POST,它工作正常,但对于 HTTP DELETE,我在 Firebug(使用 Firefox 10)中得到响应“NetworkError:400 Bad Request”。我看到Firefox首先发送了一个HTTP OPTIONS(查看是否允许使用HTTP DELETE),这导致了这个错误,所以我用谷歌浏览器尝试了同样的事情。谷歌浏览器发送一个真正的 HTTP DELETE,然后返回:
“XMLHttpRequest 无法加载 https://graph.facebook.com/USER_ID/scores?access_token=APP_ID|APP_SECRET。Access-Control-Allow-Origin不允许来源 MY_DOMAIN”。
我认为这是一个经典的跨域问题,但如何解决呢?我已将我的域添加到我的 facebook 应用程序(位于https://developers.facebook.com/apps),并且 Facebook 有一个名为“删除用户分数”的段落。所以必须可以删除分数(以某种方式)?