2017-11-11 199 views
-2

我想执行AJAX操作。该调用工作正常,但我遇到的问题是,我得到一个空字符串作为回应。控制台中没有错误。我所得到的只是一个空字符串。即使当我将数据类型更改为JSON时,我仍然得到相同的响应。jQuery AJAX POST方法不起作用

JavaScript代码:

$.ajax({ 
    url: "data/saveCart.php", 
    method: "POST", 
    data: { 
    cartItem:item 
    }, 
    dataType: "text", 
    success: function(data){ 
    console.log(data); 
    } 
}); 

PHP代码:

if(isset($_POST['cartItem'])) { 
    echo "AJAX successful"; 
} else { 
    echo "AJAX failed"; 
} 
+0

尝试使您的数据字符串化如下所示:var obj = JSON.stringify();并将其设置为您在Ajax调用中的数据 – r3dst0rm

+1

您的if/else将回显某些内容。所以,问题是也许ajax调用不正确的PHP?或者,您粘贴的php代码与“saveCart.php”中的代码不完全相同?当ajax请求一个页面时,你的网络选项卡显示了什么(php名称是什么,它发送/获得什么标题/响应)? – IncredibleHat

+0

请看看答案。 –

回答

0

好像它是由不stringifying你的数据造成的。

var item = { 
    toothbrush: { 
    price: 1 
    } 
}; 

$.ajax({ 
    url: "data/saveCart.php", 
    method: "POST", 
    data: { 
    cartItem: JSON.stringify(item) 
    }, 
    dataType: "text", 
    success: function(data){ 
    console.log(data); 
    } 
}); 
+0

我试着'串化'我的数据现在它终于在控制台打印'AJAX失败'(来自'saveCart.php的响应')但是为什么'$ _POST ['cartItem']'没有设置? –

+0

请求是否在网络选项卡中引发任何错误? –

+0

不会引起任何错误。 –