Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
未设置Ajax jQuery POST变量_Jquery_Ajax_Arrays_Post - Fatal编程技术网

未设置Ajax jQuery POST变量

未设置Ajax jQuery POST变量,jquery,ajax,arrays,post,Jquery,Ajax,Arrays,Post,问题: 我进行如下ajax调用: $.ajax({ type: "POST", url: "cms/php/UploadAjax.php", data: { Images: Images }, dataType: "html", success: function (data) { console.log(data); }, error: function (data) { conso

问题:

我进行如下ajax调用:

$.ajax({
    type: "POST",
    url: "cms/php/UploadAjax.php",
    data: {
        Images: Images
    },
    dataType: "html",
    success: function (data) {
        console.log(data);
    },
    error: function (data) {
        console.log(data);
    }
});
Array
{
    [0]=> Array
    {
        [0]=>"test1.png"
        [1]=>"someDataUrl1"
    }
    [1]=> Array
    {
        [0]=>"test2.png"
        [1]=>"someDataUrl2"
    }
}
图像的结构如下所示:

$.ajax({
    type: "POST",
    url: "cms/php/UploadAjax.php",
    data: {
        Images: Images
    },
    dataType: "html",
    success: function (data) {
        console.log(data);
    },
    error: function (data) {
        console.log(data);
    }
});
Array
{
    [0]=> Array
    {
        [0]=>"test1.png"
        [1]=>"someDataUrl1"
    }
    [1]=> Array
    {
        [0]=>"test2.png"
        [1]=>"someDataUrl2"
    }
}
在我的本地服务器(Windows/EasyHP)上,我可以访问
$\u POST['Images']
很好,就像

<?php
    if(isset($_POST['Images']))
    {
        foreach($_POST['Images'] as $image)
        {
            ////do something with $image[0], $image[1]
            if (!preg_match('/data:([^;]*);base64,(.*)/', $image[0], $matches)) 
        {
            die("error");
        }
        // Decode the data
        $content = base64_decode($matches[2]);


        header('Content-Type: '.$matches[1]);
        header('Content-Length: '.strlen($content)); ////Removing it resolved the issue
        $imagename=utf8_decode($image[1]);
        $path="../../galleryimages/".$imagename;
        $mysqlpath="galleryimages/".$image[1];
        file_put_contents($path,$content);

        }
    }
    else
        echo "something";
?>
如果我再加上:

contentType:"html/text"
对于我的ajax调用,除了
console.log(数据)之外,我没有收到任何错误给了我“something”,它告诉我没有设置
$\u POST['Images']
。添加了
contentType
后,它既不能脱机工作,也不能联机工作


提前感谢。

希望这对您有所帮助。这将把数组转换成json,php可以将其解码并用作数组

var ImageJSON = JSON.stringify(Images);

  data: {
     Images: ImageJSON,
  }
在你发送之前

if(isset($_POST['Images']))
    $Images = json_decode($_POST['Images']);

    foreach($Images as $image) {
我解决了:移除

   header('Content-Length: '.strlen($content)); 
解决了问题(另请参见我的问题)。

将数据类型表单“html”更改为“json”