Jquery Ajax – 发布巨大的字符串值

我需要POST一个大约3mb的巨大字符串,是否可以使用not url params将其发送到php?

如果我在url params发送它,请求达到url的大小限制。

如何解决这个问题? 任何线索?

非常感谢。

其实我是这样做的:

$.ajax({ type:'POST', ....... data:{string:3MB_string} }); 

我正在使用PHP和jQuery,我想在一个简单的URL上发送3mb base64字符串给php,比如site.com/script.php

该字符串是File Reader API base64图像

这是一个字符串的例子,但这不会达到大小限制它不是3mb更少导致麻烦粘贴,以显示你3mb, http://jsfiddle.net/QSyMc/

您需要使用POST请求:

 $.ajax({ url: '/script.php', type: 'POST', data: { value: 'some huge string here' }, success: function(result) { alert('the request was successfully sent to the server'); } }); 

并在您的服务器端脚本中检索值:

 $_POST["value"] 

您还可能需要增加允许的请求大小。 例如,在.htaccess文件或php.ini您可以设置post_max_size值:

 #set max post size php_value post_max_size 20M 

尝试将processData为false,并使用JSON的字符串表示forms

 var data = { "some" : "data" }; $.ajax({ type: "POST", url: "/script", processData: false, contentType: 'application/json', data: JSON.stringify(data), success: function(r) { console.log(r); } }); 

从jQuery.ajax文档:

processData (默认值:true)

类型:布尔值

默认情况下,作为对象传入数据选项的数据(技术上,不是字符串) 将被处理并转换为查询字符串 ,适合默认内容类型“application / x-www-form-urlencoded” 。 如果要发送DOMDocument或其他未处理的数据,请将此选项设置为false。

我遇到了类似的问题。 它不是查询字符串的长度,而是我传递给服务器的变量数。 php.ini将max_input_vars字段的限制设置为1200个变量。 在我的情况下,我超过了那个数量而不是post_max_size数量。 不得不返回并使查询更有效率和限制。 我想我可以提高php.ini设置但是我通过禁用非必要的查询参数来获得更好的代码。

你肯定需要使用POST方法。 如果字符串仍然很大,请检查php.ini文件以找出最大POST参数大小。

要更改此值,请执行以下任一操作:

1.更改php.ini中的值

 post_max_size=20M upload_max_filesize=20M 

2.或将此代码添加到.htaccess文件中

 php_value post_max_size 20M php_value upload_max_filesize 20M 

使用哪一个取决于您有权访问的内容。

试试这个:

 var str = "YOUR STRING"; $.ajax({ url: 'YOUR URL', type: 'POST', data: { mystring: str }, success: function(result) { console.log(result); } });