[英]Ajax call not sending to POST
我有一個包含AJAX的函數,用於發送從localStorage檢索到的JSON對象。 由於某種原因,盡管我非常確定AJAX調用能夠成功進行,但在我的PHP腳本中,它從未在$ _POST變量中顯示任何內容。 我的代碼如下:
JavaScript:
function processResults(){
var finalResults = localStorage.getItem('results');
finalResults = JSON.stringify(finalResults);
$.ajax({
type: 'POST',
url: '../DB_add.php',
dataType: 'json',
data: {'answers': finalResults},
success: function(data){
console.log(data);
console.log('Success');
}
})
}
php腳本:
if(isset($_POST['answers'])){
$obj = json_decode($_POST['answers']);
print_r ($obj);
}
對於為什么不能正常工作的任何幫助,將不勝感激。 謝謝。
到目前為止,我已經嘗試了所有提供的選項,但似乎沒有任何效果。 我完全不知所措。
對於那些詢問的人,finalResult變量的結構為:
[{"answer":0,"elapsed_time":1378,"stimulus_id":"8","task_id":1},{"answer":1,"elapsed_time":157,"stimulus_id":"2","task_id":1},{"answer":1,"elapsed_time":169,"stimulus_id":"1","task_id":1}, etc....
dataType: 'json'
要求您在PHP中輸出的內容( success
部分接受的data
)必須是有效的json。
因此有效的json將在PHP中:
if(isset($_POST['answers'])){
echo $_POST['answers'];
}
無需解碼,它已經是json字符串。 沒有var_dump
,沒有print_r
我將在您的Ajax請求中刪除dataType
屬性,並修改數據的結構:
$.ajax({
type: 'POST',
url: '../DB_add.php',
data: 'answers='&finalResults,
success: function(data){
console.log(data);
console.log('Success');
}
})
在第二次中,我將測試在PHP端收到的內容:
if(isset($_POST['answers'])){
var_dump(json_encode($_POST['answers']));
}
如果您使用JSON.stringify
發送, JSON.stringify
刪除dataType: 'json',
JS。
function processResults(){
var finalResults = localStorage.getItem('results');
finalResults = JSON.stringify(finalResults);
$.ajax({
type: 'POST',
url: '../DB_add.php',
data: {'answers': finalResults},
success: function(data){
console.log(data);
console.log('Success');
}
})
}
PHP代碼:
if (!empty($_REQUEST['answers'])) {
$answers = json_decode(stripslashes($request['answers']));
var_dump($answers);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.