这是我的问题,可能是一个愚蠢的问题,但是我真的看不出有什么问题。
在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]。
感谢您的帮助! :)
答案 0 :(得分:0)
尝试删除
processData:false,
contentType: false,
在您的ajax请求中。 您可以通过执行以下操作来检查输入内容是否有问题
var_dump("php://input");
答案 1 :(得分:0)
首先,请用method
将ajax中的type
替换为POST
的请求类型
还请检查要发送的data
是否在对象数组中,您需要简单地使用{'project' : projectid, 'fileName' : response.fileName}
而不使用stringify来发送它,然后测试服务器端发布的数据是否被检索。