无法通过XMLHttpRequest发送大型json数据--javascript
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法通过XMLHttpRequest发送大型json数据--javascript相关的知识,希望对你有一定的参考价值。
我需要将一个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个字符。
答案
不要使用GET请求。
您正在存储数据,因此您应该使用POST请求。
使用$.post
而不是$.load
并编写自己的逻辑以在done()
处理程序中显示响应。
我已将js代码更改为:
您需要将数据放在请求的正文中。 POST请求不会更改您可以在URL中放入多少数据的规则。
$.post("http://localhost/myurl/phpFile.php", { mrData: jsonArrFinal })
.done( data => $("#sendResult").html(data) );
以上是关于无法通过XMLHttpRequest发送大型json数据--javascript的主要内容,如果未能解决你的问题,请参考以下文章
Chrome 拓展开发 Service Worker 无法使用 XMLHttpRequest 发送 HTTP 请求
无法通过 Shopware 6 中的 XmlHttpRequest 请求 PageController