将大型 json 字符串从 Javascript 发布到 Django
Posted
技术标签:
【中文标题】将大型 json 字符串从 Javascript 发布到 Django【英文标题】:POST large json string from Javascript to Django 【发布时间】:2019-10-11 23:13:51 【问题描述】:我有一个简单的小 Cordova (phonegap) 移动应用程序。我需要选择一个文件,填写其他字段并保存表格。然后我想稍后再发送这些数据。
如何保存表单数据: 将 localStorage 中的字段作为序列化数组的 json 字符串,并将 LocalFileSystem 中的文件作为文件中的 reader.readAsText() (只是带有 base64 字符串的文件)。
我如何向服务器发送数据: 我将 base64 字符串推送到我的序列化数组,并将 ajax 发布到服务器字符串化数据。
我的问题: 我无法将大的 json 字符串(当文件 > 2 MB 时)发送到我的服务器,我收到一个错误:code 414, message Request-URI Too Long。
我该如何解决这个问题?
【问题讨论】:
你做错了事。从 javascript 发送HTTP POST
请求。
我做 $.ajax(...)
检查。我添加了答案。
【参考方案1】:
你应该这样做。
$.ajax(
type: 'POST',
url: '<URL_HERE>', // where data should be send
dataType: 'json',
data: '"a": "b"', // your json data here
success: function(data)
// This will be invoked, if server returns status code 200.
console.log(data)
,
);
【讨论】:
【参考方案2】:问题出在 Django 设置中!
DATA_UPLOAD_MAX_MEMORY_SIZE - 默认为 2.5 MB (2621440)。
DATA_UPLOAD_MAX_MEMORY_SIZE = 26214400 解决了我的问题 (25MB)
【讨论】:
以上是关于将大型 json 字符串从 Javascript 发布到 Django的主要内容,如果未能解决你的问题,请参考以下文章
无法通过XMLHttpRequest发送大型json数据--javascript
将JSON字符串从IOS Native发送到Javascript(JSON.Parse)时出现Json Parse错误[重复]