2011-11-25 35 views
4

我相信這是一個難以回答的問題。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「

+0

我從Chrome開發人員工具驗證它是POST請求。但是,服務器收到一個GET請求。我也認爲這可能是一個服務器重定向,但後來我意識到這也沒有意義,因爲服務器重定向應該發生在其他瀏覽器。 – barbolo

+1

我已經用相關信息更新了這個問題。我不認爲我需要粘貼任何應用程序代碼,因爲GET請求正在被nginx接收(在調用應用程序之前)。 – barbolo

+1

我不認爲Google Chrome在這種情況下是無辜的。問題發生在rails應用程序被調用之前。我也嘗試刪除Chrome的緩存。 – barbolo

回答

0

這既不涉及phusion乘客也不涉及ruby或ssl。 重現此行爲的最小示例可以在here找到。

相關問題