Laravel AJAX Post 数组在服务器上变为空

Posted

技术标签:

【中文标题】Laravel AJAX Post 数组在服务器上变为空【英文标题】:Laravel AJAX Post array becomes empty on server 【发布时间】:2020-04-27 04:54:02 【问题描述】:

我的 AJAX 帖子中有两个数组。一个始终有效,另一个在服务器上变为空。在它们被发送之前,它们看起来和我一模一样,这就是为什么我非常困惑为什么它不起作用。

数组 A,始终有效console.log()

0: "content_description_back_button"
1: "search_city_no_results"

数组B,变为空console.log()

search_city_no_results_x: "No results. Please change your search query"
content_description_back_button_xxx: "back"

POST 代码:

$.ajax(
    url : '/home/update_xml',
    type : "post",
    data : 'new_keys': array_B, 'deactivate_keys': array_A,
    success : function(response) 
        console.log("update_xml", response);    
    ,
    error : function(xhr) 
        console.log("update_xml", xhr);
    
);

服务器\Log::info($data->new_keys);:

只是一个空字符串,什么都没有。

服务器\Log::info($data->deactivate_keys);:

array (
  0 => 'content_description_back_button',
  1 => 'search_city_no_results',
)

到目前为止我做了什么:

我已经为 AJAX 帖子尝试了大量不同的语法组合。

例子:

contentType: 'application/json;charset=UTF-8',
dataType: "json",
data : JSON.stringify('new_keys': array_B, 'deactivate_keys': array_A)

我试过contentType -> ContentType

我尝试了不同的组合,但结果总是一样的。阵列 A 始终有效。服务器上的数组 B 为空。

console.log() 中,它们看起来和我一模一样。他们都作为阵列受到威胁。

【问题讨论】:

var_dump($data); 的输出是什么? 这很奇怪。我挣扎了将近 1 个小时,但是在我创建这个线程之后,我找到了解决方案。数组 B 应该作为 JS 中的字典受到威胁。我在填充之前有array_b=[];,但它必须是array_b=; 【参考方案1】:

array_B 在 JS 中必须被威胁为字典。

在填充之前,它看起来像这样:

array_b=[];

但它必须是这样的:

array_b=;

非常简单的修复。我保持开放的问题。也许有人会有类似的问题。

【讨论】:

以上是关于Laravel AJAX Post 数组在服务器上变为空的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 在控制器中获取 AJAX 数组 POST

Ajax Post Laravel 共享主机上的 403 错误

Jquery:使用 laravel 的跨域 ajax 'POST'

POST 500(内部服务器错误) - Ajax 和 laravel 4

我的 POST ajax 请求在 Laravel 控制器上返回 302

Laravel ajax url 在生产服务器上不起作用