我使用以下代码来对我的服务器进行 ajax 调用。
该代码调用服务器,作为返回,它会获取使用同一应用程序的所有好友的列表。
FB.getLoginStatus(function(response) {
if (response.session) {
uid = response.session.uid;
access_token = response.session.access_token;
$.getJSON(serverLink+"ajax.php?action=getFriendsApp", {token:access_token}
,function(data){
var temp = data;
if(true){
var container = $('#friends_part_main');
var fp = $('#friends_part');
fp.show();
var friends = data;
for(var i in friends){
container.append('<a target="_blank" href="http://www.facebook.com/profile.php?id='+friends[i]+'">\n\
<img src="https://graph.facebook.com/'+friends[i]+'/picture" alt="friend" />\n\
</a>');
}
}
});
}
如果我直接从浏览器 (www.mydomain.com/app) 运行此代码,它就可以工作。
但是当我从 Canvas 页面(app.facebook.com)运行它时,我收到以下错误:
XMLHttpRequest cannot load http://www.mydomain.com/src/ajax.php?action=getFriendsApp&token=AAAC0kxh1WAcBAHo3s0QaVy34mgdnCNGvrDZCvIQsZCBHZC8ovR9IuYEFlUKRqK0GgJosWAD6Embg8QrN07vivE6mOuAZAtxUD7WpySDL3wZDZD. Origin https://www.mydomain.com is not allowed by Access-Control-Allow-Origin.
你能找出原因吗?
最佳答案
对我来说,我的ajax页面“ajax.php”的URL中的域和ajax调用页面“index.php”的URL并不完全相同。 “www”错过了…… 您必须检查您的两个脚本域(调用脚本和响应脚本)是否完全相同!检查“http”与“https”,检查“https://my-domain.com”与“https://www.my-domain.com”等。 希望能帮助到你。 xxx
关于javascript - 从 facebook 应用程序调用 ajax 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298794/