【问题标题】:Codeigniter - Facebook - JQuery Mobile problemCodeigniter - Facebook - JQuery 移动问题
【发布时间】:2011-08-23 01:39:32
【问题描述】:

我正在开发一个移动网络应用程序,该应用程序列出了用户的朋友以在他们的墙上发帖。我使用 PHP SDK 作为 FB 框架。 当 facebook 重定向回原始 URL 时,它会添加一个查询字符串。 浏览器地址栏中的返回 URL 如下所示:

http://mysyte.com/friends?state=11ccb40641675f22adc52aeff2562a0f&code=AQBsK6AipjCoQ96i00mHz5gJe4MqgxQCbRwZQKqHWngO8X54eyb3o1qZS7Hz0O335SVUVSUHT05M4xtC5FbTclFolxD7Z2rUM5m7zAvIx-TJN-V8aP1L6WtRMsqMWIWclHJZqWqsP9leyAs0H6HxSVvhH50ut8IKv7wowmojNmyW0pQtmUVAsLi0-8WTo-Y_xCg#_

当视图被加载时,JQuery mobile 会尝试调用这个:

“http://mysite.com/friends/_”

它从 Codeigniter 获得 404,因为下划线。因此,我有一个空白页。

我尝试通过将 REQUEST_URI 更改为 PATH_INFO 来解决此问题,在 allowed_uri_chars 中启用查询字符串和空字符串,但没有任何运气。

另外,当我打印出 $_SERVER['REQUEST_URI'] 时,我得到:

/朋友?状态= 11ccb40641675f22adc52aeff2562a0f&代码= AQBsK6AipjCoQ96i00mHz5gJe4MqgxQCbRwZQKqHWngO8X54eyb3o1qZS7Hz0O335SVUVSUHT05M4xtC5FbTclFolxD7Z2rUM5m7zAvIx-TJN-V8aP1L6WtRMsqMWIWclHJZqWqsP9leyAs0H6HxSVvhH50ut8IKv7wowmojNmyW0pQtmUVAsLi0-8WTo-Y_xCg P>

没有尾随的#_,因为它在浏览器地址栏中看起来)

如果我在浏览器中手动删除末尾的#_,它会再次加载。

有什么想法吗?

谢谢。

【问题讨论】:

  • 你说的是哪个手机浏览器?你试过 var_dump($this->input->get()) 吗?
  • 任何。我正在 iphone、blackberry 和 firefox 上测试这个。我已经通过强制客户端重定向来修补它。这不是一个修复,但至少它正在工作。
  • 您使用的是哪个 SDK 版本?

标签: php javascript codeigniter jquery-mobile facebook-php-sdk


【解决方案1】:

我在使用 JQM 和 url #hash 时遇到了类似的问题。我能够使用锚标记的 rel 属性:

<a href="http://website.com" rel="external">Link Me</a>

您可能还想尝试data-ajax="false"
与/或与 JQM changePage() 方法:

$.mobile.changePage(url, { changeHash:false });

其中url 是字符串形式的路径(相对或绝对)。

至于下划线,这对 CodeIgniter 来说是个大问题,因为任何以 _ 开头的方法都是私有方法。

诚然,我从未使用过 FaceBook PHP API。所以,你的问题可能不在我的知识范围内。

【讨论】:

    【解决方案2】:

    啊,是的,URL 错误末尾的臭名昭著的井号。让我猜猜,您使用内置的 webkit 浏览器在 Android 模拟器上对此进行了测试。它可以在实际设备上运行,也可以在另一个模拟器版本上尝试。

    我怀疑对此知之甚少,但我在 SO 的几个问题中看到了这个小问题,并且我在自己的测试中遇到了它。这里肯定有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多