Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery Ajax-发布巨大的字符串值_Javascript_Jquery_Ajax_Post - Fatal编程技术网

Javascript Jquery Ajax-发布巨大的字符串值

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

我需要发布一个大约3mb的大字符串,是否可以使用非url参数将其发送到php

如果我在url参数中发送,请求将达到url中的大小限制

我们如何解决这个问题?有线索吗

非常感谢

实际上我是这样做的:

$.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