gpt4 book ai didi

javascript - 将 json 对象从 javascript 发送到 php

转载 作者:可可西里 更新时间:2023-11-01 13:08:37 26 4
gpt4 key购买 nike

我正在尝试将 JSON 对象从 Javascript/Jquery 发送到 PHP,但我在控制台中收到错误消息。我究竟做错了什么。我是 JS 和 PHP 的新手。

JQuery 文件:

$(document).ready(function() {
var flickr = {'action': 'Flickr', 'get':'getPublicPhotos'};
// console.log(typeof(flickr));
var makeFlickrCall = function(flickrObj){
$.ajax({
url: '../phpincl/apiConnect.php',
type: 'POST',
data: flickrObj
})
.done(function(data) {
console.log("success");
console.log(JSON.stringify(data));
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
};

makeFlickrCall(flickr);
});

PHP 文件

<?php       
$obj = $_POST['data'];
// print_r($obj);
return $obj;
?>

最佳答案

标准的 jQuery .ajax() 方法使用 data 属性创建一个 x-www-form-urlencoded 字符串传入请求体。像这样

action=Flickr&get=getPublicPhotos

因此,您的 PHP 脚本不应查找 $_POST['data'],而应查找 $_POST['action']$_POST[ '得到']

如果您想将原始 JSON 数据有效负载发送到 PHP,请执行以下操作...

将 AJAX contentType 参数设置为 application/json 并发送一个 stringified 版本的 JSON 对象作为 data有效载荷,例如

$.ajax({
url: '../phpincl/apiConnect.php',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(flickrObj),
dataType: 'json'
})

然后您的 PHP 脚本将从 php://input 流中读取数据负载,例如

$json = file_get_contents('php://input');

然后您可以将其解析为 PHP 对象或数组...

$dataObject = json_decode($json);
$dataArray = json_decode($json, true);

而且,如果您只是想将其回显给客户端......

header('Content-type: application/json');

// unmodified
echo $json;

// or if you've made changes to say $dataArray
echo json_encode($dataArray);

关于javascript - 将 json 对象从 javascript 发送到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23750661/

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