Facebook图形API - 为什么使用异步ajax文件上传我无法获得照片ID响应



我使用 iframe 技术将照片上传到 facebook graph api。我使用此技术:http://www.openjs.com/articles/ajax/ajax_file_upload/response_data.php。

照片上传成功。但是我需要在我的 iframe 上阅读它给我的响应,但我无法做到这一点。我尝试了我所知道的所有技术,纯javascript和jquery黑客。但没有任何效果...

响应的格式如下(我可以在Chrome JS控制台上看到):

{
   "id": "111346062333977",
   "post_id": "100003757518505_111258412342742"
}

那是什么格式?我该怎么读呢?它不在DOM上,它不在身体上,它的现在!!!

来自图形 API 的响应始终JSON编码(除非指定callback参数,在这种情况下它是JSONP)。

您将无法在尝试实现的流中获得该响应。如果从客户端响应直接将照片上传到图形 API,则受跨域策略的约束,并且 JavaScript 根本无法访问响应。

您应该从服务器端上传图像,以便能够检索包含上传照片id的响应

如果我理解您的问题,那么您会遇到同源策略,因为您将表单发布到 iframe 中,并且表单的操作是指向另一个域,与您的域不同(加载主页的域)。

因此,您在 iframe 中获得的响应无法传递到父页面,因为它们不共享同一域并且浏览器会阻止通信。

正如@JuicyScripter所写,您可能需要考虑从服务器端发布图像,这将使事情变得更简单。如果你不想这么快放弃客户端解决方案,我建议你检查这个线程:Facebook Graph API - 使用JavaScript上传照片

最新更新