2014-06-19 80 views
1

我試圖讓Google API工作,我通過AJAX發送數組到PHP,但在我的PHP文件中數組是空的。這是我到目前爲止。Ajax發送空數組到PHP文件

$.ajax({ 
    type: 'POST', 
    url: '../scripts/email/google.php?storeToken&state', 
    data: {param : param}, 
    success: function(result) { 
     console.log(result); 
    }, 
    processData: false 
}); 

然後我google.php文件中我使用

$code = explode(",",file_get_contents('php://input')); 

但是$代碼是空的,也當我使用

var_dump($_POST); 

它打印到控制檯

Array(0){ 
} 

我已經搜索了這個問題,並嘗試了無數次「修復」,但似乎沒有奏效:/

編輯:有另一種方式我可以得到代碼和PHP文件我的狀態變量除了使用AJAX,因爲似乎沒有任何工作

Error_log (print_r ($_POST,1)); 

預期值被印刷到錯誤日誌

+1

爲什麼你'過程數據:FALSE' ? – Musa

+2

'param'的價值是什麼# – Victory

+0

@Musa我跟着一個教程,我發現在stackoverflow和那是什麼在那裏我做了測試設置它是真實的今天早些時候,但它沒有改變任何東西,我現在再試一次,新的我所做的更改。 編輯:從false更改爲true後仍然爲空 – user3758298

回答

0

通過改變我的代碼以下

var params = 
{ 
'authResult': authResult['code'], 
'state':state 
} 

$.ajax({ 
    type: 'POST', 
    url: '../scripts/email/google.php?storeToken&state/', 
    data: params 
    success: function(result) { 
     console.log(result); 
    }, 
    processData: true 
    }); 

終於解決了這個然後在PHP文件以下列方式訪問它

$authResult = $_POST['authResult']; 
$state = $_POST['state']; 
0

嘗試使用JSON.stringify功能,如:

$.ajax({ 
    type: 'POST', 
    url: '../scripts/emailgoogle.php?storeToken&state',           
    data  : {'mydata':JSON.stringify(param)}, 
    success: function(result) { 
     console.log(result); 
    } 
    }); 

在服務器側PHP文件:

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

$post_data = $_POST; 
var_dump($post_data); 
+0

已將其更改爲{mydata:param},仍然是數組是空的 – user3758298

+0

我編輯了我的代碼。讓我知道如果這有效! –

+0

嘗試了新更改並將以下內容輸出到html「NULL array(0){ }」,並在控制檯中給出以下錯誤: 未捕獲SyntaxError:意外令牌N jquery.min.js:4 m.parseJSON jquery.min.js:4 (anonymous function)dashboard:597 j jquery.min.js:2 k.fireWith jquery.min.js:2 x jquery.min.js:4 b – user3758298