我的javascript中有以下代码:
$.ajax({
url : 'update_data.php',
type : 'POST',
data : 'asdfasd', //d,
success : function(response){
console.log(response);
},
error: function(jqXHR, textStatus, errorThrown){
console.log('jqXHR.responseText: ' + jqXHR.responseText);
console.log('jqXHR.responseXML : ' + jqXHR.responseXML);
console.log('textStatus: ' + textStatus);
console.log('errorThrown: ' + errorThrown);
},
dataType : 'text'
});
这是我的'update_data.php':
<?php
echo json_encode($_POST);
if (isset($_POST['data'])){
echo "here!";
} else {
echo "failed jquery";
}
?>
当我运行Ajax方法时,我在控制台中得到以下响应:
[]failed jquery
表示update_data.php没有收到任何POST请求。 '[]'来自json_econd($ _ POST),'失败的jquery'来自if / else。
我做错了什么?
答案 0 :(得分:7)
你需要传递数据如下
data : {'data':'asdfasd'},
如果想传递多个参数,那么
data : {'data':'asdfasd','param1':'value','param2':'value'},
或提交表格数据
data : $( "formselector" ).serialize(),
ajax中的数据参数
键入:PlainObject或String或Array要发送到服务器的数据。它 如果不是字符串,则转换为查询字符串。它是附加的 到GET请求的URL。请参阅processData选项以防止这种情况 自动处理。对象必须是键/值对。如果价值是 Array,jQuery使用相同的密钥序列化多个值 传统环境的价值(如下所述)。
阅读有关jquery ajax parameters HERE
的更多信息答案 1 :(得分:0)
你的句子$(document).ready(function() {
//sDeleteURL: "/Home/DeleteData.php"
$('#myTable').dataTable().makeEditable( {
// some basic config
'bProcessing': true,
'bServerSide': true,
'sAjaxSource': "admin/json_get_countries",
stateSave: true,
"scrollCollapse": true,
"language": {
"lengthMenu": "Display _MENU_ records per page",
"zeroRecords": "Nothing found - sorry",
"info": "Showing page _PAGE_ of _PAGES_",
"infoEmpty": "No records available",
"infoFiltered": "(filtered from _MAX_ total records)"
}
} );
} ); // end of on doc load
只是回复你的AJAX请求的回复。所以它下面的代码不起作用。尝试评论这句话并再次运行。我想你可以看到&#34;在这里!&#34;在控制台中。
答案 2 :(得分:0)
你犯了两个错误:
1:在jquery中你必须发送如下数据:
data : {'data':'asdfasd'}
2:在&quot; update_data.php&#39; :json_encode
位于脚本的最后一个
答案 3 :(得分:0)
无论何时使用ajax,总是将数据作为大括号内的键值对传递为:
data = {'data':'asdfasd'}
data = $(&#39;#form_id&#39;)。serialize();
这将在$ _GET -r $ _POST中为您的php页面提供所有表单数据,无论您使用哪种方法作为ajax。