Facebook 应用程序适用于所有浏览器,但不适用于 IE8

2023-11-25

我正在开发一个 Facebook 应用程序。 Stragnly,该应用程序在大多数浏览器上运行良好(我在 FF、chrome 和 safari 上测试过它,并且在所有浏览器上运行良好)。然而,当我在 IE8 上测试时,在尝试对其中一个页面进行 ajax 调用时收到此错误消息:

Fatal error: Uncaught Exception: 102: Requires user session thrown in
/home1/website/public_html/facebook/src/facebook.php on line 515

这是包含第 515 行的函数facebook.php:

protected function _restserver($params) {
  // generic application level parameters
  $params['api_key'] = $this->getAppId();
  $params['format'] = 'json-strings';

  $result = json_decode($this->_oauthRequest(
    $this->getApiUrl($params['method']),
    $params
  ), true);

  // results are returned, errors are thrown
  if (is_array($result) && isset($result['error_code'])) {
    throw new FacebookApiException($result);
  }
  return $result;
}

我的猜测是,这与会话或 IE8 设置有关,但我不确定如何解决此问题。


尝试将此标头添加到您的 php 文件顶部:

<?php
    header('p3p: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"');
?> 

这将使跨域 AJAX 调用在 IE 中工作

EDIT:

实际上,长的正确答案如下:

开发 IFrame Canvas 应用程序(或来自不同域的页面中托管的任何其他 iframe)时,在某些条件(默认 IE 配置)下,对 cookie(称为第 3 方 cookie)的访问受到限制。 Firefox、Chrome、Safari、Opera 都按预期工作,但 IE 阻止对此 cookie 的访问。此标头的存在(称为P3P 紧凑型隐私政策)将使 IT 接受来自不同域的 cookie。

这如何使你的会话代码工作???

为了在服务器中维护会话信息,页面会发出一个存储在客户端中的会话 cookie。如果您的 iframe 使用会话,那么浏览器必须允许它存储 cookie。

失败存储 cookie 意味着会话将丢失,并且基于会话的代码将像您发布的那样失败。

希望这可以帮助。

PS:顺便说一句,我不知道 p3p 标头中所有奇怪的缩写词是什么意思。我已经看到了它的许多变体,所以你应该尝试更多地研究它

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Facebook 应用程序适用于所有浏览器,但不适用于 IE8 的相关文章

随机推荐

  • 查找并替换字符串

    是否可以在页面加载之前查看页面的源代码 找到某个部分并将其替换为其他内容 我想使用 JavaScript 来完成此操作 以便我可以在 Chrome 扩展中使用它 所以像这样 找到 google com 替换为 yahoo com
  • 如何使用jquery联系叔叔

    div div div div div div 我在 me 我想选择我的叔叔 使用如下内容 me find uncle me next uncle me prev uncle How 你可以使用 parent and prev假设你的叔叔总
  • Visual Studio 2008 插件/加载项开发 - 入门

    和 关联这个计算器问题 我将如何创建自己的 Visual Studio 2008 插件 我查看了 MSDN 上的 Visual Studio 开发人员中心 但信息量巨大 项目类型繁多 我什至不知道从哪里开始 我应该从哪里开始寻找如果我想写一
  • na.locf 但不执行尾随 NA

    我有以下时间序列 gt y lt xts 1 10 Sys Date 1 10 gt y c 1 2 5 9 10 lt NA gt y 1 2011 09 04 NA 2011 09 05 NA 2011 09 06 3 2011 09
  • 如何在 Delphi 中以编程方式创建带有几个组件的表单

    我正在使用 Delphi 7 并尝试以编程方式创建表单 这是我的表单类存根 unit clsTStudentInfoForm interface uses Forms type TStudentInfoForm class TForm en
  • 为什么操作系统在内存足够的情况下却说无法给jvm分配内存

    我正在尝试使用以下命令启动一个新的 jvm java version 但是报错 There is insufficient memory for the Java Runtime Environment to continue Native
  • socket.io 套接字 ID 应该保密吗?

    我正在使用 socket io 开发一个 Web 应用程序 我目前正在使用套接字 ID 作为标识符 该标识符会广播给其他客户端 现在 这引发了安全问题 即该 ID 是否可用于劫持另一个用户会话 不幸的是 在网上很难找到这方面的任何信息 那么
  • 为什么分配给空列表(例如 [] = "")不会出错?

    在 python 3 4 中 我正在输入 并且它工作正常 没有引发异常 虽然当然 不等于 然后 也工作正常 但正如预期的那样引发了异常 但正如预期的那样引发了异常 发生什么了 你不是为了平等而比较 你是指派 Python 允许您分配给多个目
  • iOS模拟器不播放声音[重复]

    这个问题在这里已经有答案了 在 XCode 6 上 设备上一切正常 但在模拟器上 无法播放声音 这是我的快速代码 var url NSURL string http my url com sound mp3 var data NSData
  • 如何在 MySQL 数据库中存储 JSON 字符串

    我使用下面的代码将 JSON 数据存储在 MySQL 表中 如果 JSON 很短 它可以正常工作 但如果文本较长 则会中断 field json 是一个长文本 sql sprintf UPDATE mytable SET field jso
  • C# 获取控件在窗体上的位置

    当控件可能位于其他控件 如面板 内部时 是否有任何方法可以检索控件在表单中的位置 该控件的 Left 和 Top 属性只提供了它在其父控件中的位置 但是如果我的控件位于五个嵌套面板内 并且我需要它在窗体上的位置 该怎么办 快速示例 按钮 b
  • 为什么从 avi 容器解码帧并将其编码为 h264/mp​​4 不起作用?

    我开始使用 ffmpeg 我想将 avi 文件转换为 mp4 h264 文件 我读过很多帖子 包括this 但我找不到任何好的示例如何将帧保存到 mp4 文件 下面的代码是简化的代码 它从 avi 文件中解码帧并将其编码为 H264 mp
  • 内存中 C++ 对象的结构与结构

    如果我有一堂课如下 class Example Class private int x int y public Example Class x 8 y 9 Example Class 和一个结构如下 struct int x int y
  • 如何在Android P上使用apache http

    当我运行我的应用程序时安卓P设备 我收到一些这样的错误 java lang RuntimeException Unable to instantiate application com le android client LeApplica
  • 浮点数学有问题吗?

    考虑以下代码 0 1 0 2 0 3 gt false 0 1 0 2 gt 0 30000000000000004 为什么会出现这些不准确的情况 Binary 浮点数学就是这样 在大多数编程语言中 它基于IEEE 754 标准 问题的关键
  • 在 Angular2 (Typescript) 中实现动态路由 [重复]

    这个问题在这里已经有答案了 RouteConfig 类可用于装饰具有路由功能的组件 RouteConfig 并为该组件定义了某些路由定义 现在 问题是在运行时 动态 注入这些路由定义 原因是 假设我有一个应用程序 其中我必须显示 UI 并定
  • Selenium 元素选择器 - 我认为 xPath 最慢?

    我对一个公共网站进行了一些测试 看看是否可以发现一些不同 Selenium CSS 选择器的性能差异 我运行了一个包含五个节点的集线器 mac chrome local mac safari local mac ff local win7
  • Xcode 4.2 链接错误:libz 问题?

    将项目移至 Xcode 4 2 时 我在 Xcode 4 0 3 中编译和链接正常的项目上遇到了许多 Mach O 链接器未解决的错误 例如 crc32 expf 和 UnwindSjLj Register 我怀疑这可能是 libz 问题
  • CUDA:如何使用 -arch 和 -code 以及 SM 与 COMPUTE

    我仍然不确定在使用 nvcc 构建时如何正确指定代码生成的体系结构 我知道我的二进制文件中嵌入了机器代码和 PTX 代码 并且可以通过控制器开关进行控制 code and arch 或两者的组合使用 gencode 现在 根据this除了两
  • Facebook 应用程序适用于所有浏览器,但不适用于 IE8

    我正在开发一个 Facebook 应用程序 Stragnly 该应用程序在大多数浏览器上运行良好 我在 FF chrome 和 safari 上测试过它 并且在所有浏览器上运行良好 然而 当我在 IE8 上测试时 在尝试对其中一个页面进行