我做一個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);
}
});
的Images
的結構是這樣的:
Array
{
[0]=> Array
{
[0]=>"test1.png"
[1]=>"someDataUrl1"
}
[1]=> Array
{
[0]=>"test2.png"
[1]=>"someDataUrl2"
}
}
在我的本地服務器(Windows/EasyPHP)我可以訪問$_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";
?>
問題是,這不適用於我的在線服務器。它給出了警告:
POST http://myurl.com/... net::ERR_CONTENT_LENGTH_MISMATCH
如果我再補充一下:
contentType:"html/text"
我的Ajax調用,我越來越沒有錯誤,但console.log(data);
從成功處理程序給我「東西」這告訴我沒有設置$_POST['Images']
。隨着contentType
的增加,它既不能在線下工作,也不能在線工作。
在此先感謝。
將dataType表單「html」更改爲「json」 – Robin