Я столкнулся с проблемой, что когда я делаю запрос POST, сервер отвечает с ошибкой 404, а при выполнении запроса GET он отвечает с 200.
Вот методы, которые я попробовал:
$.ajax({
type:"POST",
url: "script.php",
data:{
imgBase64: data
}
}).done(function(o) {
console.log('saved');
});
А также:
var data = new FormData();
data.append("data" , dataURL);
var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
xhr.open( 'post', 'script.php', true );
xhr.send(data);
Дальше больше я постарался включить:
header("HTTP/1.0 200 OK", true);
header('Access-Control-Allow-Origin: *');
в сценарии php. Но ни один из них не работает.
У кого-нибудь есть идея? Спасибо!
РЕДАКТИРОВАТЬ:
Вот скрипт php. Кстати, я использую nodejs …
<?php
// requires php5
header('Access-Control-Allow-Origin: *');
define('UPLOAD_DIR', 'images/');
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
?>
Я новичок в nodejs и, наконец, обнаружил, что должен написать функцию в server.js для обработки запроса get.
Других решений пока нет …