<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 格式在处理复杂数据结构等场景下往往更加灵活方便。
971

被折叠的 条评论
为什么被折叠?



