首页 > 解决方案 > Laravel AJAX Post 数组在服务器上变为空

问题描述

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

数组 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"

邮政编码:

$.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()他们看起来都和我一样。他们都像一个阵列一样受到威胁。

标签: phparraysajaxlaravelpost

解决方案


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

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

array_b=[];

但它必须看起来像这样:

array_b={};

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


推荐阅读