AJAX使用$_POST方法传输大量数据
AJAX transfer large amount of data using $_POST method
我想使用AJAX将大量文本传输到服务器。我想使用POST方法附加此文本,但我得到以下错误:
请求失败:URI太长(大于8190)
javascript代码:
function loadXMLDoc(data) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("POST", "http://www.mydomain.com/test2.php?blob=" + data, true);
xmlhttp.send();
}
我的php代码:
$dataraw = $_GET["blob"];
file_put_contents('/path/to/my/file/newfile.txt', $dataraw);
echo 'file saved';
你应该改变这个
xmlhttp.open("POST","http://www.mydomain.com/test2.php?blob=" + data,true);
xmlhttp.send();
:
xmlhttp.open("POST", "http://www.mydomain.com/test2.php", true);
var payload = "blob=" + data;
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.setRequestHeader("Content-length", payload.length);
xmlhttp.send(payload);
在POST中,参数应该放在消息正文中,而不是URL。
同时,您应该期望服务器端的参数在$_POST中-这是body参数在PHP中的最终位置。
不添加post-data到URL。请点击此链接查看post-request示例:
http://www.w3schools.com/ajax/ajax_xmlhttprequestrongend.aspxmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
相关文章:
- 使用Emscripten Worker API传输数据而不进行复制
- 使用 JavaScript 通过网页传输数据
- 是否可以在由春季网络流驱动的html页面之间传输数据
- 使用 nodejs 通过 tcp 套接字传输数据
- 如何在 Angular .js 中从 html 传输数据
- 本地存储无法传输数据,并非在所有浏览器中都有效
- 使用 Angular 2/RxJs 5 beta 可观察从 while 循环流式传输数据
- 在 meteor.js 中通过邮件从 html-form 传输数据
- 使用服务在 Angular 中不同应用程序的控制器之间传输数据
- 在网站上的页面之间传输数据
- PhoneGap(网络移动应用程序)-在页面之间传输数据
- PubSub模式用于在两个解耦的javascript模块之间传输数据
- 在Java后端和javascript前端之间传输数据
- 在不同域的用户脚本之间传输数据
- 传输数据以供其他网站使用
- 使用jQuery在MVC上传输数据的最佳方式
- 在cgi和Javascript/Jquery之间传输数据
- 从表中传输数据
- 在函数中传输数据?Javascript
- 为什么谷歌分析使用一个像素的图片来传输数据