我目前正在努力將資訊從我的視圖傳遞到 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:這是我的第一篇文章
uj5u.com熱心網友回復:
這個經過審查的版本有效:
$.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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/470274.html
