Javascript Jquery Ajax-发布巨大的字符串值
我需要发布一个大约3mb的大字符串,是否可以使用非url参数将其发送到php 如果我在url参数中发送,请求将达到url中的大小限制 我们如何解决这个问题?有线索吗 非常感谢 实际上我是这样做的:Javascript Jquery Ajax-发布巨大的字符串值,javascript,jquery,ajax,post,Javascript,Jquery,Ajax,Post,我需要发布一个大约3mb的大字符串,是否可以使用非url参数将其发送到php 如果我在url参数中发送,请求将达到url中的大小限制 我们如何解决这个问题?有线索吗 非常感谢 实际上我是这样做的: $.ajax({ type:'POST', ....... data:{string:3MB_string} }); 我正在使用PHP和jQuery,我想通过一个简单的url将3mb base64字符串发送到PHP,比如site.com/script.PHP 该字符串是文件读取器API base6
$.ajax({
type:'POST',
.......
data:{string:3MB_string}
});
我正在使用PHP和jQuery,我想通过一个简单的url将3mb base64字符串发送到PHP,比如site.com/script.PHP
该字符串是文件读取器API base64映像
这是一个字符串示例,但它不会达到大小限制。它不是一个3mb更小的字符串。粘贴时会遇到麻烦,要显示3mb,您需要使用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
中,可以设置以下值:
试试这个:
var str = "YOUR STRING";
$.ajax({
url: 'YOUR URL',
type: 'POST',
data: { mystring: str },
success: function(result) {
console.log(result);
}
});
您肯定需要使用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
使用哪一个取决于您有权访问的内容。尝试使用
processData
来设置false和JSON的字符串表示形式
var data={“some”:“data”};
$.ajax({
类型:“POST”,
url:“/script”,
processData:false,
contentType:'应用程序/json',
数据:JSON.stringify(数据),
成功:功能(r){
控制台日志(r);
}
});
从文件中:
processData(默认值:true)
类型:布尔型
默认情况下,传入的数据
将数据选项作为对象(从技术上讲,是除
字符串)将被处理并转换为查询字符串
默认内容类型“application/x-www-form-urlencoded”。如果
如果要发送DOMDocument或其他未处理的数据,请设置
选项为false
我遇到了一个类似的问题。这不是查询字符串的长度,而是我传递给服务器的变量的数量。ini将max_input_vars字段中的变量限制为1200个。在我的情况下,我超过了该金额,而不是post_max_大小的金额。必须返回并使查询更加高效,并且在限制范围内。我想我本可以提高php.ini设置,但通过禁用非必要的查询参数,我得到了更好的代码。我已经用这种方式发送了:p@Darin Dimitrov,这导致url大小限制达到我的意思是我得到控制台“you reach request limit”,您可能还需要增加允许的最大请求大小。我已经更新了我的答案来说明这一点。@DarinDimitrov链接获取您的答案:@bombastic我正在解释为什么它没有在URL参数中发送。URL是通过
open()
方法发送的,而不是send()
方法。当您在jQuery中指定type:'POST'
时,您告诉它您希望将数据作为有效负载发送,而不是作为url参数发送。您是否可以添加一些解释,说明为什么您认为这是必要的,或者为什么这会起作用?var data={“some”:“data”};一半是json,一半是object?
php_value post_max_size 20M
php_value upload_max_filesize 20M