2016-12-13 80 views
2

我想通過ajax調用發送JSON數組到web服務PHP。我已經嘗試了很多解決方案(大部分針對這樣的問題提出了類似的答案),沒有任何線索。通過AJAX發佈JSON數組到php失敗

我JSON陣列結構是:

var res= [{"id":-9007199254740990, 
"NW":{"x":3.97,"y":5.83}, 
"SE":{"x":2.72,"y":3.53}, 
"NE":{"x":1.97,"y":8.83}, 
"SW":{"x":3.87,"y":4.83}}] 

和處理該請求的JavaScript函數如下:

send_json(res); //call function 
function send_json(res) 
{ 
    var myJsonString = JSON.stringify(res); 
    console.info(myJsonString); 
    $.ajax({ 
    url:"test.php", //the page containing php script 
    type: "GET", //request type 
    contentType: "application/json; charset=UTF-8", 
    data: {data : myJsonString} , 
    success:function(result){ 
    //JSON version 
    console.info(result); 
    } 
    }); 
} 

PHP文件處理請求如下:

<?php 
if ($_SERVER['REQUEST_METHOD'] == 'GET') 
{ 
    $data = json_decode(file_get_contents("php://input")); 
    print_r($data); 
} 
?> 

我試過還發送JSON作爲鍵值 JS:

data: {data: myJsonString} 

,進而經由接收它在PHP:

if(isset($_GET['data'])) 
{ 
echo json_decode($_GET['data']); 
} 

在沒有線索以及,輸出是在兩個試驗空。

+0

您是否觀看過瀏覽器開發人員工具中的AJAX請求/響應?你有沒有在項目中包含jQuery庫?是否有任何錯誤報告?你在網絡服務器上運行這個嗎? –

+0

@JayBlanchard @JayBlanchard所有依賴關係都包含在內,我還有另一個實例化另一個ajax調用但帶有鍵值數據的函數,它工作正常 – JafarAlali92

+0

這仍然不能回答問題。你*看過*請求/迴應嗎? –

回答

0

不要使用GET,如果你想將數據發送到服務器,使用後反而

type: "post", 
+0

使用jQuery AJAX,您可以通過GET請求發送數據。它看起來很奇怪,但它起作用。 –

+0

您也可以用錘子打開一扇門,但這不是GET方法的目的。 – OsDev

+0

毫無疑問,我只是指出它會起作用。 –

1
var res= [{"id":-9007199254740990, 
"NW":{"x":3.97,"y":5.83}, 
"SE":{"x":2.72,"y":3.53}, 
"NE":{"x":1.97,"y":8.83}, 
"SW":{"x":3.87,"y":4.83}] 

這是JSON對象的數組,而不是字符串 你可以傳遞一個JSON object,因爲它是

data:res, 
type: "post", 

現在,在服務器做

print_r($_POST); 
+0

我知道它不是一個字符串,它只是數組的名稱:S我這樣做了,輸出是一個空數組() – JafarAlali92

+0

嘗試「data:res」。 – Ima

+0

OP在這裏轉換爲一個字符串'var myJsonString = JSON.stringify(res);' –