簡體   English   中英

讀取通過Ajax調用發送的PHP中的json數據

[英]Read json data in PHP sent with an Ajax call

前端開發人員正在通過Ajax調用發送一組格式化為JSON對象的數據。 json對象如下所示:

{
 "name": " Test Name ",
 "image_url": "test URL",
 "include": [
  "1"
 ],
 "dimension": [
  null
 ],
 "media_type": [
  null
 ],
 "match": [
  "1"
 ],
 "content": [
  "test content"
 ],
 "sorting": {
  "rating": "50",
  "language": "50",
  "CS Weight": "50",
 }
}

如何在我的PHP控制器中閱讀它。 我可以這樣得到嗎:

$data = $_POST;

因為在這種情況下包含JSON對象的變量沒有名稱,所以我無法通過這種方式獲取它

$data = $_POST['data']

編輯部分


從前端以這種方式發送數據:

 sendAjax: function(value, url, callback){
            xhr = $.ajax({
                type: 'POST',
                url: url,
                data: value
            }).done(function(message){
                callback(message);
            }).fail(function(jqXHR, textStatus){
                console.log('failed to submit form, error type: '+textStatus);
            });
        }

從腳本輸入中讀取它,在這里您可以獲取“原始” POST數據:

$json = file_get_contents('php://input');
$data = json_decode($json);

假設您在前端使用jquery,這應該可以工作。 只需將其粘貼到您的JavaScript控制台中並運行它即可(請確保將路徑替換為您的網址。參數應正確輸入。

data = {
 "name": " Test Name ",
 "image_url": "test URL",
 "include": [
  "1"
 ],
 "dimension": [
  null
 ],
 "media_type": [
  null
 ],
 "match": [
  "1"
 ],
 "content": [
  "test content"
 ],
 "sorting": {
  "rating": "50",
  "language": "50",
  "CS Weight": "50",
 }
}

$.ajax({url:'/YOUR/PATH/HERE', data: {data: data}, type: 'post', dataType: 'json'})

發布后發生在我身上,您是否在詢問接收后如何解析JSON或如何使其顯示在$ _POST哈希中?

暫無
暫無

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

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