我想知道如何在没有重定向页面的情况下使用jquery POST发送大数据? 我有一个项目来创建移动聊天,并在用户应用程序和服务器之间进行连接,我使用JSON。 这是jquery get json脚本的样子,因为我们知道jsonGet无法处理大数据。
注意:bigNumber有8000个字符。
$.getJSON('process.php?input='+bigNumber, function(data) {
$.each(data.Chats, function(i,output)
{
$("#data").append(output.chat);
});
});
这是我使用getJSON发送大号时所得到的: 414(Request-URI Too Large)
所以,在我发送bigNumber之后,我会从process.php获得一个响应作为json数据并添加到html的主体。
// --- 现在这是我的代码。
html文件
<script src="jquery.min.js"></script>
<script>
$(function(){
$("#senddata").click(function() {
$.ajax({
dataType: "json",
url: "process.php",
data: { input:$("#bigNumber").val() },
success: function(data) {
$.each(data.Chats, function(i,output)
{
$("#data").append(output.key);
});
},
method: "POST"
});
});
});
</script>
<div id="data"></div>
<input type="text" id="bigNumber"/>
<button id="senddata">Send</button>
这是 process.php
header('Content-type: application/json');
$key = $_POST["input"];
$simpan_array = array();
$chat = array();
$chat["key"] = $key;
array_push($simpan_array, $chat);
echo json_encode(array("Chats" => $simpan_array));
当我填写文本框并按“发送”按钮时,没有任何反应。 怎么了?
刚刚发现问题是什么,这是json格式的一个错误,显示在process.php上
答案 0 :(得分:2)
您需要使用POST请求。由于getJSON()
只是ajax()
的外观,因此很容易转换:
$.ajax({
dataType: "json",
url: "process.php",
data: { input:bigNumber },
success: function(data) {
$.each(data.Chats, function(i,output)
{
$("#data").append(output.chat);
});
},
method: "post"
});
答案 1 :(得分:1)
使用$.post
$.post('process.php',{input: bigNumber}, function(data) {
$.each(data.Chats, function(i,output)
{
$("#data").append(output.chat);
});
},'JSON');
答案 2 :(得分:0)
为什么你不能尝试使用websockets进行聊天应用程序请参阅此页面 Web Socket Server或Introduction to HTML5 WebSocket