gpt4 book ai didi

php - 在 Codeigniter Controller 中处理 JSON 数据

转载 作者:行者123 更新时间:2023-12-01 07:06:09 24 4
gpt4 key购买 nike

我在使用 GET 请求从 JQuery 发送 JSON 数据时遇到问题。这是我用 GET 发送数据的 JQuery。

    var xhr = new XMLHttpRequest();
var url = "http://example.com/share/new?data=" + JSON.stringify({"id": "1", "type": "new", "data": "testabcd"});
xhr.open("GET", url, true);
xhr.setRequestHeader("Content-type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var json = JSON.parse(xhr.responseText);
}
};
xhr.send();

这在我的 Controller 文件中。

    public function share()
{
header('Content-type: application/json');

$Data = json_decode($_GET["data"]);

$data_share = array(
'id' => $Data['id'],
'type' => $Data['type'],
'data' => $Data['data']);

$this->db->insert('mytable', $data_share);

return "200";
}

问题是 Controller 中没有任何内容,并且插入查询没有插入任何内容。如何解决这个问题?也许我的代码做错了什么?先谢谢你了。

最佳答案

当您将 json 数据发送到 php 时,它的输入不会出现在 $_POST$_GET 中,而是出现在 php://input 中斯特姆;

你发送的ajax请求不是jQuery,而是它的核心js,这很好,但它非常不灵活,并且在不同的浏览器中往往会崩溃。我刚刚使用了 jQuery 版本的 ajax,它非常灵活并且跨浏览器。

试试这个:JS:

$.ajax({
method:'POST',
contentType:'application/json',
url:'http://example.com/share/new',
data: JSON.stringify({"id": "1", "type": "new", "data": "testabcd"}),
success:function(response){
console.log(response);
}

});

PHP:

public function reservation()
{

$Data = json_decode(file_get_contents('php://input'), true);

$data_share = array(
'id' => $Data['id'],
'type' => $Data['type'],
'data' => $Data['data']);

$this->db->insert('mytable', $data_share);

return "200";
}

关于php - 在 Codeigniter Controller 中处理 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44623323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com