我在使用HTTP DELETE指令訪問腳本時訪問來自PHP的原始請求信息時出現問題。我正在使用一個使用Ajax訪問腳本的JS前端。這個腳本實際上是我正在開發的RESTful API的一部分。使用HTTP DELETE方法時數據訪問的RESTful問題
在此示例中的端點是:
此端點被用來產生可以用於後續的API請求的認證令牌。在此URL上使用GET方法以及HTTP基本認證的修改版本將爲客戶端提供訪問令牌。這個令牌必須包含在與服務的所有其他交互中,直到它到期。
一旦生成令牌,它被傳遞迴客戶端在由指定的格式「接受」由客戶端向服務報頭;在這種情況下'application/json'。一旦成功,它將以HTTP 200 Ok狀態碼進行響應。失敗時,它會使用HTTP 401授權必需代碼引發異常。
現在,當你想刪除一個會話,或「註銷」,你打相同的URL,但與HTTP DELETE指令。要驗證對該端點的訪問權限,客戶端必須證明他們之前已通過提供他們想要終止的令牌進行身份驗證。
如果他們「登錄」,令牌和會話終止和服務應與HTTP 204無內容狀態碼,否則,它們與401例外再次映入眼簾。
現在,我遇到的問題是刪除會話。通過DELETE指令,使用Ajax,我似乎無法訪問我請求訪問服務時設置的任何參數。在這種情況下,我正在尋找名爲'token'的參數。
我看使用螢火蟲原始請求頭和我注意到「的Content-Length」與令牌的大小標頭的變化被髮送。這告訴我這個數據確實被髮送到服務器。
問題是,使用PHP,我該如何訪問參數信息?這不是POST或GET請求,所以我無法像在PHP中一樣訪問它。這些參數在請求的內容部分內。
我試圖尋找在$ _ SERVER,但顯示我頭量有限。我嘗試了'apache_request_headers()',它給了我更詳細的信息,但仍然只用於標題。我甚至嘗試過'file_get_contents('php:// stdin');'我什麼也得不到。
如何訪問原始HTTP請求的內容部分?
對不起,冗長的職位,但我想通了太多信息比太少更好。 :)
如果這是不可能的,我總是這樣的: DELETE http://api.site.com/session/dDI3w3dsd9fsdle 其中「dDI3w3dsd9fsdle」是認證令牌。不過,我寧願不要在URL中公開它。 – 2010-05-02 04:23:30