Javascript 捕获$ajax json类型的post数据
如果我在$ajax中使用Javascript 捕获$ajax json类型的post数据,javascript,jquery,ajax,Javascript,Jquery,Ajax,如果我在$ajax中使用dataType:'json',如何在php中捕获数据?如果没有,我可以使用$\u POST['1']等,但我计划使用jason,因为我必须做$\u POST['2']等 您将在名为data的请求中有一个php参数,该参数将被解析为Json,然后您只需应用: var ajaxData = {1: a, 2: b, 3: c, 4: d}; $.ajax({ type: "POST", data : ajaxData,
dataType:'json'
,如何在php中捕获数据?如果没有,我可以使用$\u POST['1']等,但我计划使用jason,因为我必须做$\u POST['2']
等 您将在名为data的请求中有一个php参数,该参数将被解析为Json,然后您只需应用:
var ajaxData = {1: a, 2: b, 3: c, 4: d};
$.ajax({
type: "POST",
data : ajaxData,
etc
etc
我会和你一起去
$data = json_decode($_POST[1]);
然后在服务器端,我将使用json_decode函数获取数据数据类型:json是ajax调用的返回数据类型 数据是php文件/servlet所需的参数。要传递json,请参见下面的示例,它是json和普通参数的混合体
$.ajax(
...
data: {data: JSON.stringify({1: a, 2: b, 3: c, 4: d};)}
)
在php文件中,您可以访问传递的数据,如$\u POST['a']、$\u POST['b']、$\u POST['myJSON']
dataType是php文件的返回类型,而不是发送到php文件的参数
请参阅此处以了解更多信息
好的,现在php端的问题是,我必须逐个检查它们吗?我的意思是像isset($\u POST['1'])一样,检查POST或get请求中是否传递了参数。在我的示例中,如果要检查是否传递了参数a、b和myJSON,则必须说
if(isset($\u POST['myJSON']){
/*在这里使用myJSON*/}
执行一些操作,这样就可以检查整个json了?必须在客户端进行验证吗?要检查json的内容,必须首先对其进行解码。检查这个关于PHP中json的链接
var params = {a:1,
b:2,
myJSON: JSON.stringify({data1:1, data2:2, data3:3})}
jQuery.ajax({
type: "POST",
url: "some/url/of/php/file",
data: params,
dataType: "json",
success: function(response){
// this should catch what ever is returned by your php file
alert(response)
},
error: function(msg) {
alert('error');
}
});