簡體   English   中英

解碼PHP中的ribs.js JSON包

[英]Decode backbone.js JSON package in PHP

因此,我一直在解碼從lobb.js應用程序發送到服務器的有效JSON請求時遇到麻煩。 無論我嘗試了什么,解碼后的$ _POST數據都返回null。 我戳了一下stackoverflow,發現了這個解決方案

$data = json_decode(file_get_contents('php://input'), true); 
print_r($data);

這似乎是一種hack,所以我想知道是否有更好的方法來處理PHP中來自主干的JSON數據。 接收和解碼從PHP中的ribs.js應用程序發送的JSON數據的正確方法是什么?

您應該檢查用於將數據發送到腳本的請求方法,如下所示:

switch ($_SERVER['REQUEST_METHOD'])
{
    case 'POST':
    {
      // do something
    }
    break;

    case 'GET':
    {
      // do something else
    }
    break;

    case 'PUT':
    {
      // your snippet goes here
    }
    break;

    case 'DELETE':
    {
      // do something when request method == DELETE
    }
    break;
}

當REQUEST_METHOD為PUT或DELETE時,應使用發布的代碼。 根本不是黑客。

您還可以將Backbone配置為通過POST通過以下方式發送數據:

Backbone.emulateHTTP = true;

從Backbone的手冊中:

如果要使用不支持Backbone的默認REST / HTTP方法的舊版Web服務器,則可以選擇打開Backbone.emulateHTTP。 設置此選項將使用HTTP POST偽造PUT和DELETE請求,並使用true方法設置X-HTTP-Method-Override標頭。 如果emulateJSON也處於打開狀態,則true方法將作為附加的_method參數傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM