我正在开发一个移动网络应用程序,该应用程序列出用户的朋友,以便在他们的墙上发布。我使用PHP SDK作为FB框架。当facebook重定向回原始URL时,它会添加一个查询字符串。浏览器地址栏中的返回URL是这样的:
http://mysyte.com/friends?state=11ccb40641675f22adc52aeff2562a0f&代码= AQBsK6AipjCoQ96i00mHz5gJe4MqgxQCbRwZQKqHWngO8X54eyb3o1qZS7Hz0O335SVUVSUHT05M4xtC5FbTclFolxD7Z2rUM5m7zAvIx-TJN-V8aP1L6WtRMsqMWIWclHJZqWqsP9leyAs0H6HxSVvhH50ut8IKv7wowmojNmyW0pQtmUVAsLi0-8WTo-Y_xCg # _
加载视图时,JQuery mobile会尝试调用:
" http://mysite.com/friends/_ "
从Codeigniter得到404因为下划线。因此,我有一个空白页。
我试图通过将REQUEST_URI更改为PATH_INFO来解决这个问题,在permitted_uri_chars中启用查询字符串和空字符串而没有任何运气。
另外,当我打印出$_SERVER['REQUEST_URI']时,我得到:
/朋友?状态= 11 ccb40641675f22adc52aeff2562a0f&代码= AQBsK6AipjCoQ96i00mHz5gJe4MqgxQCbRwZQKqHWngO8X54eyb3o1qZS7Hz0O335SVUVSUHT05M4xtC5FbTclFolxD7Z2rUM5m7zAvIx-TJN-V8aP1L6WtRMsqMWIWclHJZqWqsP9leyAs0H6HxSVvhH50ut8IKv7wowmojNmyW0pQtmUVAsLi0-8WTo-Y_xCg
(去掉浏览器地址栏中以#_结尾的字符)
如果我手动删除浏览器末尾的#_,它会再次正常加载。
任何想法?
谢谢。
我在JQM和url #散列中遇到了类似的问题。我可以使用锚标记的rel属性:
<a href="http://website.com" rel="external">Link Me</a>
您可能还想尝试data-ajax="false"
JQM changePage()方法的AND/OR:
$.mobile.changePage(url, {
changeHash:false
});
其中url
为字符串形式的路径(相对或绝对)。
至于下划线,这对CodeIgniter来说是个大问题,因为任何以_开头的方法都是私有方法。
不可否认,我从未使用过FaceBook的PHP API。所以,你的问题可能超出了我的知识范围。啊,是的,URL错误末尾那个臭名昭著的哈希符号。让我猜猜,你是用内置的webkit浏览器在Android模拟器上测试的吧。它将在实际设备上工作,也可以在另一个模拟器版本上尝试。
我怀疑对此知之甚少,但我在SO的几个问题中看到了这个小问题,我在自己的测试中也遇到了它。这里肯定有问题