Codeigniter - Facebook - JQuery Mobile проблема - PullRequest
1 голос
/ 23 августа 2011

Я работаю над мобильным веб-приложением, которое перечисляет друзей пользователя для публикации на их стенах. Я использую PHP SDK в качестве FB Framework. Когда Facebook перенаправляет обратно на исходный URL, он добавляет строку запроса. Вот так выглядит обратный URL в адресной строке браузера:

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

Когда представление загружено, JQuery mobile пытается вызвать это:

"http://mysite.com/friends/_"

и он получает 404 от Codeigniter, потому что подчеркивание. В результате этого у меня есть пустая страница.

Я попытался исправить это, изменив REQUEST_URI на PATH_INFO, включив строки запроса и пустую строку в allow_uri_chars без какой-либо удачи.

Кроме того, когда я распечатываю $ _SERVER ['REQUEST_URI'], я получаю:

/ друзей? Состояние = 11ccb40641675f22adc52aeff2562a0f и код = AQBsK6AipjCoQ96i00mHz5gJe4MqgxQCbRwZQKqHWngO8X54eyb3o1qZS7Hz0O335SVUVSUHT05M4xtC5FbTclFolxD7Z2rUM5m7zAvIx-TJN-V8aP1L6WtRMsqMWIWclHJZqWqsP9leyAs0H6HxSVvhH50ut8IKv7wowmojNmyW0pQtmUVAsLi0-8WTo-Y_xCg

( БЕЗ завершающего # _ , как это выглядит в адресной строке браузера)

Если я вручную удаляю #_ в конце в браузере, он снова загружается нормально.

Есть идеи?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Я столкнулся с похожей проблемой с 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, поскольку любой метод, начинающийся с _, является закрытым методом.

Правда, я никогда не использовал API FaceBook PHP. Итак, ваша проблема может быть вне моей компетенции.

1 голос
/ 25 августа 2011

Ах да, печально известный символ хеша в конце ошибки URL.Позвольте мне догадаться, что вы тестировали это на эмуляторе Android, используя встроенный браузер webkit.Он будет работать на реальном устройстве, также попробуйте это на другой версии эмулятора.

Я подозреваю, что об этом очень мало известно, но я видел эту маленькую проблему в нескольких вопросах о SO и Iv'e.столкнулся с этим в моих собственных тестах.Здесь определенно что-то не так.

...