您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
webman-快速開始-簡單示例-返回json、xml及jsonp
发布时间:2022-01-16 19:37:20编辑:雪饮阅读()
基於webman-快速開始-簡單示例-返回字符串的實例,如果我們要返回json就很簡單了程序修改為:
<?php
namespace app\controller;
use support\Request;
class User
{
public function hello(Request $request)
{
$default_name = 'webman';
$name = $request->get('name', $default_name);
return json([
'code' => 0,
'msg' => 'ok',
'data' => $name
]);
}
}
返回json時数据将自动加上一个header头 Content-Type: application/json
重啓webman服務后,訪問如:
[root@localhost webman]# elinks http://127.0.0.1:8787/user/hello?name=tom --dump
{"code":0,"msg":"ok","data":"tom"}
同理,返回xml則是這樣
return xml("<person><user>張三</user><age>12</age></person>");
返回xml時候會带 Content-Type: text/xml 头的xml响应。
返回jsonp數據
return jsonp(["name"=>"xy","women"=>"beiBei"], $callback_name = 'callback');
這裏第一個參數將會作爲函數的參數傳遞給前端,第二個參數就是前端的被調用的方法名。
則此時前端實現如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script>
<script>
function callback(){
console.log("arguments2",arguments);
}
$.getJSON("http://192.168.43.170:8787/user/hello?name=tom?jsoncallback=?");
</script>
</head>
<body>
</body>
</html>
前端實現時候?jsoncallback=?是固定部分
而前端中的callback這個名字由後端決定,因爲目前這裏後端返回的就是callback名稱。
若後端返回jsonp的時候是這樣的,即name是接收自變量
$name = $request->get('name', $default_name);
return jsonp(["name"=>$name,"women"=>"beiBei"], $callback_name = 'callback');
則前端接收的則可能是這樣
所以需要注意哈
雖然說前端用getJSON可以實現jsonp請求,不過哥更喜歡ajax實現jsonp,可能是更優雅的實現吧。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script>
<script>
function callback(){
console.log("arguments2",arguments);
}
$.ajax({
url:"http://192.168.43.170:8787/user/hello?name=tom",
dataType:"jsonp"
});
</script>
</head>
<body>
</body>
</html>
关键字词:webman,json,xml,jsonp
相关文章
- webman-快速開始-簡單示例-返回字符串
- webman安裝
- workerman自定义协议-jsonl数据包(首部无符号int四字节
- workerman自定义协议-xml数据包-包长与包首部
- phpunit断言-assertXmlStringEqualsXmlString
- phpunit断言-assertXmlStringEqualsXmlFile
- phpunit断言-assertXmlFileEqualsXmlFile
- phpunit断言-assertJsonStringEqualsJsonString
- phpunit断言-assertJsonStringEqualsJsonFile
- phpunit断言-assertJsonFileEqualsJsonFile