采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好
8-12 接口验证 postman选择Json显示是"Unexpected 's'" ,在html下是正常显示的.
必须在加上theme下的getSimpleList加上json('success');显示正常.
上一个也出现了同样问题,没找到方法就跳过了,这次又是如此,所以向你提问,不知道别的同学有没有这个状况。 我看视频是没有添加 json()方法,就反馈是正常的。
下图,最左边是老师视频的反馈。 中间是最后加上json方法。 右边是没加json()的显示错误
出现unexpect这个问题是因为,再postman里,会尝试格式化成json,而你返回的不是json而是一个字符串。你可以尝试在浏览器里访问应该就不会出现这个问题。或者:你return一个json格式的对象,也能正确得到结果。其实返回是没问题的。
非常感谢!是的,加上json()后是正常的,只会觉得视频里面也是如此.却是没有问题,所以提问待解惑.
没关系,老师本来就应该答疑解惑。
解决的办法: 在config.php中把默认输出改成json,// 默认输出类型'default_return_type' => 'json',
访问地址;http://wx.zerg.com/api/v1/theme?ids=1,2,3
V1/Theme.php
<?phpnamespace app\api\controller\v1;use app\api\validate\IDCollection;use think\Controller;use app\api\model\Theme as ThemeModel;class Theme extends Controller{ /* * @url /theme?ids=id1,id2,id3,.... * @return 一组theme模型 * */ public function getSimpleList($ids=''){ (new IDCollection())->goCheck(); return 'success'; }}
route.php
Route::get('api/:version/theme','api/:version.Theme/getSimpleList');
IDCollection.php
<?phpnamespace app\api\validate;class IDCollection extends BaseValidate{ protected $rule =[ 'ids'=> 'require|checkIDs', ]; protected $message=[ 'ids'=>'ids参数必须是以逗号分隔的多个正整数' ]; protected function checkIDs($value){ $value = explode(',',$value); if(empty($value)){ return false; } foreach($value as $id){ if(!$this->isPositiveInteger($id)){ return false; } } return true; }}
BaseValidate.php
<?phpnamespace app\api\validate;use app\lib\exception\ParameterException;use think\Exception;use think\Validate;use think\Request;class BaseValidate extends Validate{ public function goCheck(){ //获取http传入的参数 //对这些参数做检测 $request = Request::instance(); $params = $request->param(); $result = $this->batch()->check($params); if(!$result){ $e = new ParameterException([ 'msg'=> $this->error, ]); throw $e; }else{ return true; } } protected function isPositiveInteger($value,$rule='',$data='',$field=''){ if(is_numeric($value) && is_int($value+0) && ($value+0)>0){ return true; } else{ return false; //return $field.'必须是正整数'; } }}
别的同学应该没这个问题,因为没有人提过。你把你现在错误的方法代码贴出来。
好.字数的限制,我写到下面.
纠正下,中间这个是没加Json()方法的。
登录后可查看更多问答,登录/注册
全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计
1.4k 23
1.5k 21
1.6k 19
1.6k 18
1.3k 18