UniApp 操作 PHP 的实例之一

<template>
    <view>
        <button @click="sendRequest">发送请求到服务器</button>
        <view v-if="responseData">
            <!-- 这里假设返回的数据中最关键是展示name和version字段,可按需调整展示逻辑 -->
            服务器返回的数据:名称 - {{ responseData.data.name }}, 版本 - {{ responseData.data.version }} ,serverTime - {{responseData.data.serverTime}}
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                responseData: null
            };
        },
        methods: {
            sendRequest() {
                uni.request({
                    url: 'http://localhost/api.php',
                    method: 'POST',
                    data: JSON.stringify({
                        name: 'UniApp',
                        version: '1.0',
                    }),
                    header: {
                        // 明确设置Content-Type为常用的application/json格式
                        'Content-Type': 'application/json'
                    },
                    success: (res) => {
                        this.responseData = res.data;
                    },
                    fail: (err) => {
                        // 可以在这里添加更友好的用户提示,比如通过uni.showToast等方式提示用户请求出错
                        console.error('请求失败:', err);
                    }
                });
            }
        }
    };
</script>
<?php

header('Access-Control-Allow-Origin: http://localhost:8080');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');

// 获取原始请求体数据
$jsonData = file_get_contents('php://input');
// 将JSON格式字符串解析为PHP数组
$data = json_decode($jsonData, true);

if (empty($data['name'])) {
    $response = array(
        'code' => 400,
        'message' => 'name参数不能为空',
        'data' => []
    );
    echo json_encode($response);
    return;
}

if (empty($data['version'])) {
    $response = array(
        'code' => 400,
        'message' => 'version参数不能为空',
        'data' => []
    );
    echo json_encode($response);
    return;
}

$name = $data['name'];
$version = $data['version'];

$response = array(
    'code' => 200,
    'message' => '数据获取成功',
    'data' => array(
        'name' => $name,
        'version' => $version,
        'serverTime' => date('Y-m-d H:i:s')
    )
);
// 返回一个JSON格式的响应
echo json_encode($response);
?>

使用 application/json 格式来发送数据,可以在后端 PHP 代码中使用 php://input 来获取原始的请求数据内容(它可以获取到包括 application/json 等格式的原始请求体数据),然后再通过 json_decode 函数将获取到的 JSON 格式字符串解析成 PHP 数组进行后续处理,这样就能在前端使用 application/json 格式发送数据并且后端也能正确处理了,选择哪种方式取决于项目具体的需求以及前后端开发规范等因素,不过 application/json 格式在处理复杂数据结构等场景下往往更加灵活方便。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值