我相信這是一個難以回答的問題。Google Chrome在Facebook Canvas Tab應用程序中不執行POST
我已經配置我用下列選項Facebook應用程序:
Page Tab URL: https://www.myapp.com.br/
Secure Page Tab URL: https://www.myapp.com.br/
(均是安全的網址,並使用HTTPS協議)
瀏覽器如Firefox和Safari都做工精細,發送當我使用http或https協議打開「頁面」選項卡時,向服務器發送POST請求。
但是,Google Chrome在使用帶有http的臉書時執行GET請求。該請求不包含signed_request。
我花了很多時間試圖解決這個問題,我仍然不明白爲什麼會發生這種情況。任何人都可以解釋並提供解決方案?
更新(詳細信息)
應用程序與Ruby on Rails的書面。它與Nginx + Passenger一起部署。以下是使用nginx配置應用程序:
server {
listen 80;
listen 443 default ssl;
server_name www.myapp.com.br;
passenger_enabled on;
root /my/app/rails/folder/public;
# workaround to get rid of infinite loops while using ssl
passenger_set_cgi_param HTTP_X_FORWARDED_PROTO https;
}
Rails配置是強制ssl。
Nginx的訪問日誌與一個Firefox請求到Facebook頁面選項卡:
201.87.25.128 - - [25 /月/ 2011:19:16:47 -0200] 「POST/HTTP/1.1」 200 9693「http://static.ak.facebook.com/platform/page_proxy.php?v=4」 「Mozilla/5.0(Macintosh; Intel Mac OS X 10.7; rv:6.0.2)Gecko/20100101 Firefox /6.0.2"
Nginx的訪問日誌與谷歌瀏覽器請求到Facebook頁面標籤:
201.87.25.128 - - [25/Nov/2011:19:19:07 -0200]「GET/HTTP/1.1」200 9678「http://static.ak.facebook.com/platform/page_proxy.php ?v = 4「 」Mozilla/5.0(Macintosh;英特爾的Mac OS X 10_7_2)爲AppleWebKit/535.2 (KHTML,例如Gecko)Chrome瀏覽器/ Safari瀏覽器15.0.874.121/535.2"
Nginx的訪問日誌與谷歌瀏覽器請求的Facebook SECURE頁面標籤:
201.87.25.128 - - [25/Nov/2011:19:18:43 -0200]「POST/HTTP/1.1」200 9678「https://s-static.ak.facebook.com/platform/ page_proxy.php?v = 4「 」Mozilla/5.0(Macintosh; Intel Mac OS X 10_7_2)AppleWebKit/535.2 (KHTML,如Gecko)Chrome/15.0.874.121 Safari/535.2「
我從Chrome開發人員工具驗證它是POST請求。但是,服務器收到一個GET請求。我也認爲這可能是一個服務器重定向,但後來我意識到這也沒有意義,因爲服務器重定向應該發生在其他瀏覽器。 – barbolo
我已經用相關信息更新了這個問題。我不認爲我需要粘貼任何應用程序代碼,因爲GET請求正在被nginx接收(在調用應用程序之前)。 – barbolo
我不認爲Google Chrome在這種情況下是無辜的。問題發生在rails應用程序被調用之前。我也嘗試刪除Chrome的緩存。 – barbolo