我没有成功使用 Ajax (Jquery) 传递信息(对象)
I don't succeed in passing information (object) using Ajax (Jquery)
我目前正在努力将信息从我的视图传递到 PHP 中的控制器(MVC 模型)。我正在使用 ajax 方法。
我想向控制器传递字符串或数组等信息:
var dataToSend = [{ fieldname: 'ABC' }, { fieldname: 'DEF' }];
dataToSend = JSON.stringify({ 'list': dataToSend });
$(".application-accept").click(function(event){
$.ajax({
url: "/olad2/project/processapplication/1",
type: "POST",
data: dataToSend,
datatype: "JSON",
contentType: "application/json; charset=utf-8"
}).done(function(response){
console.log(response);
console.log("done");
}).fail(function(err){
console.log(err.responseText);
console.log("failed");
});
});
当我在控制器中回显结果时,我被错误地告知没有数组:
echo json_encode(var_dump($_POST));
其中显示 (console.log()):
<b>array</b> <i>(size=0)</i>
空
空
我知道有很多关于这个主题的话题,但是没有用。你能帮帮我吗?
ps: 这是我的第一个post
此审核版本有效:
$.ajax({
url:"https://jsonplaceholder.typicode.com/users",
// url: "/olad2/project/processapplication/1",
method: "POST",
data: JSON.stringify({list:[{ fieldname: 'ABC' }, { fieldname: 'DEF' }]}),
datatype: "JSON",
contentType: "application/json; charset=utf-8"
}).done(function (response) {
console.log(response);
console.log("done");
}).fail(function (err) {
console.log(err.responseText);
console.log("failed");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
但即使您的“几乎不变”版本也可以使用 typicode 目标地址:
var dataToSend = JSON.stringify({ 'list': [{ fieldname: 'ABC' }, { fieldname: 'DEF' }] });
$.ajax({
// url: "/olad2/project/processapplication/1",
url: "https://jsonplaceholder.typicode.com/users",
type: "POST",
data: dataToSend,
datatype: "JSON",
contentType: "application/json; charset=utf-8"
}).done(function(response) {
console.log(response);
console.log("done");
}).fail(function(err) {
console.log(err.responseText);
console.log("failed");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
我目前正在努力将信息从我的视图传递到 PHP 中的控制器(MVC 模型)。我正在使用 ajax 方法。
我想向控制器传递字符串或数组等信息:
var dataToSend = [{ fieldname: 'ABC' }, { fieldname: 'DEF' }];
dataToSend = JSON.stringify({ 'list': dataToSend });
$(".application-accept").click(function(event){
$.ajax({
url: "/olad2/project/processapplication/1",
type: "POST",
data: dataToSend,
datatype: "JSON",
contentType: "application/json; charset=utf-8"
}).done(function(response){
console.log(response);
console.log("done");
}).fail(function(err){
console.log(err.responseText);
console.log("failed");
});
});
当我在控制器中回显结果时,我被错误地告知没有数组:
echo json_encode(var_dump($_POST));
其中显示 (console.log()):
<b>array</b> <i>(size=0)</i>
空 空
我知道有很多关于这个主题的话题,但是没有用。你能帮帮我吗?
ps: 这是我的第一个post
此审核版本有效:
$.ajax({
url:"https://jsonplaceholder.typicode.com/users",
// url: "/olad2/project/processapplication/1",
method: "POST",
data: JSON.stringify({list:[{ fieldname: 'ABC' }, { fieldname: 'DEF' }]}),
datatype: "JSON",
contentType: "application/json; charset=utf-8"
}).done(function (response) {
console.log(response);
console.log("done");
}).fail(function (err) {
console.log(err.responseText);
console.log("failed");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
但即使您的“几乎不变”版本也可以使用 typicode 目标地址:
var dataToSend = JSON.stringify({ 'list': [{ fieldname: 'ABC' }, { fieldname: 'DEF' }] });
$.ajax({
// url: "/olad2/project/processapplication/1",
url: "https://jsonplaceholder.typicode.com/users",
type: "POST",
data: dataToSend,
datatype: "JSON",
contentType: "application/json; charset=utf-8"
}).done(function(response) {
console.log(response);
console.log("done");
}).fail(function(err) {
console.log(err.responseText);
console.log("failed");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>