2011-10-30 57 views
2

我有一個需要服務.json類型文件的asp.net 4.0網站。請求以POST方式進入,不起作用。 GET工作正常。任何人都知道我需要改變什麼配置才能完成這項工作?如何在請求POST時從IIS7服務.json文件

+0

剛一說明它的在接受POST後重定向到GET的最佳實踐:http://en.wikipedia.org/wiki/Post/Redirect/Get –

+0

我嘲笑服務器我無法控制這意味着我的JavaScript應用程序需要做什麼當我去我的iis時,薩姆與產品一樣在這種情況下是apache的服務器。所以,爲了不改變JavaScript並在IIS中模擬相同的行爲,我需要JavaScript來執行POST以獲得結果(而不是GET)。 –

+0

我並不樂意以此作爲處理程序,但我需要它完成。我在這裏發佈我的解決方案:http://peterkellner.net/2011/10/30/need-to-get-static-json-file-with-post-verb-on-iis-7-5/我仍然想知道更好的答案。 –

回答

3

你可能已經找到了答案,但我認爲問題在於,你需要添加一個「以.json」處理程序爲您的Web服務器...

默認情況下,IIS沒有配置爲處理.json擴展名。

您可以將MIME類型作爲處理程序應用於IIS的根目錄,因此.json可以由IIS中的每個站點或虛擬文件夾處理,也可以由特定站點處理。

  • 文件擴展名:以.json
  • MIME類型:application/JSON

    1. 打開IIS管理器
    2. IIS服務器
    3. 單擊MIME類型,然後添加JSON擴展顯示屬性
  • 返回到IIS服務器的屬性
  • 點擊處理程序映射
    • 添加腳本映射
    • 請求路徑:*以.json
    • 可執行文件:C:\ WINDOWS \ SYSTEM32 \ INETSRV \ ASP.DLL
    • 名稱:JSON
  • 或Apache,如果你是在開發端...

    Apache Module mod_mime AddType

    注:在Ubuntu中,你還需要編輯文件/etc/mime.types並添加行:

    application/json json 
    

    然後重新啓動Apache

    sudo /etc/init.d/apache2 restart 
    
    -4

    GET或POST無關緊要,它與您的程序發送的響應類型無關。 沒有可以改變的設置。你的問題是你程序中的邏輯錯誤。

    +0

    您好Logicus,在服務器端沒有程序。這是我試圖下載的靜態json文件。當客戶端使用它的GET動詞時,當客戶端使用POST動詞時,它將以405失敗。我歡迎其他有用的建議。 –