无法读取发送到服务器的Ajax发布数据

时间:2018-10-24 16:37:35

标签: php jquery ajax laravel

这是我的问题,可能是一个愚蠢的问题,但是我真的看不出有什么问题。

在laravel中,发出ajax发布请求并将数据发送到服务器(因为它显示在浏览器的“网络”标签中)。

但是在服务器端,当我获取请求时,无法访问任何数据(似乎请求中甚至没有包含这些数据)。

成功时,ajax请求位于另一个post请求中(如果有关系的话)。

请求

docker ps -a

控制器

Docker logs containerid

我已经尝试使用JSON.stringify格式化数据

docker-compose down 
 docker-compose up -d

var projectid='21';
var data = [{'project' : projectid, 'fileName' : response.fileName}];
json = JSON.stringify (data);
console.log(json);
$.ajax({
        method :'POST',
        url:'/mtdir',
        data: json,
        cache: false,
        processData:false,
        contentType: false,
        headers: {
          'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                  }

    });

如果仅作为对象{'project':projectid,'fileName':response.fileName}发送,则浏览器网络标签仅获取[object Object]。

感谢您的帮助! :)

2 个答案:

答案 0 :(得分:0)

尝试删除

processData:false,
contentType: false,

在您的ajax请求中。 您可以通过执行以下操作来检查输入内容是否有问题

var_dump("php://input");

答案 1 :(得分:0)

首先,请用method将ajax中的type替换为POST的请求类型 还请检查要发送的data是否在对象数组中,您需要简单地使用{'project' : projectid, 'fileName' : response.fileName}而不使用stringify来发送它,然后测试服务器端发布的数据是否被检索。