无法通过XMLHttpRequest -javascript发送大型json数据

时间:2018-04-24 14:50:05

标签: javascript php json xmlhttprequest frontend

我需要将一个json变量作为参数传递给php脚本,该脚本将处理json数据并将其存储在Database中。

首先,在javascript中,我正在测试发送这样的数据:

$('#sendResult').load('http://localhost/myurl/phpFile.php?mrData=' + jsonArrFinal);

这在传递小记录时效果很好(记录可能有所不同,它取决于用户插入的数据)。

但是当我增加记录时,它开始在控制台中出现此错误:

414 (Request-URI Too Long)

我已将js代码更改为:

var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost/myurl/phpFile.php?mrData=' + jsonArrFinal );
xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
xhr.send();

但是仍然在POST方法中出现相同的错误。 我检查了json param,它有5439个字符。

我该如何解决这个问题?提前谢谢。

请注意,长度可以是5439个字符的8倍。

1 个答案:

答案 0 :(得分:1)

不要使用GET请求。

您正在存储数据,因此您应该使用POST请求。

使用$.post代替$.load并编写自己的逻辑以在done()处理程序中显示响应。

  

我已将js代码更改为:

您需要将数据放在请求正文中。 POST请求不会更改您可以在URL中放入多少数据的规则。

$.post("http://localhost/myurl/phpFile.php", { mrData: jsonArrFinal })
 .done( data => $("#sendResult").html(data) );