我试图通过AJAX将canvas.toDataUrl()发送到php页面。
这是我的尝试:
JavaScript代码:
function showUser() {
str = "url="+canvas.toDataUrl();
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","file.php?"+str,true);
xmlhttp.send();
}
PHP:
<?php
$url = $_GET['url'];
echo "$url";
?>
上面的代码似乎没有用,虽然我做了完全相同的事情,但改为使用String值,如下所示:
function showUser() {
str = "url=12345";
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","file.php?"+str,true);
xmlhttp.send();
}
这个工作正常, 但是当我使用canvas.toDataUrl()时它不起作用!为什么呢?
还有另一种方法可以将canvas.toDataUrl()发送到php吗?
由于
答案 0 :(得分:1)
<强>解决强>
问题是我试图通过GET发送大数据, 我通过POST发送相同的(大)数据来解决它 POST比GET稍微复杂一点
以下是使用POST通过AJAX发送数据的方法:
http://www.javascriptkit.com/dhtmltutors/ajaxgetpost2.shtml
我使用了链接中的代码,它对我很好 任何有相同问题的人请参考上面的链接并使用POST代替GET
谢谢大家
答案 1 :(得分:0)
我建议尝试使用javascript encodeURIComponent()函数:
str = "url="+encodeURIComponent(canvas.toDataUrl());
问题是,dataurl包含符号&#34; /&#34;所以它可能会被错误地解释。 如果有效,请告诉我。