Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 捕获$ajax json类型的post数据_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 捕获$ajax json类型的post数据

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,

如果我在$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,
        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');
                    }
                });