[英]json string passed in url which is encoded by urlencode
我正在使用CodeIgniter3.x。
用户具有以下数据: %7B%5C%22uid%5C%22%3A%5C%221234%5C%22%2C%5C%22uname%5C%22%3A%5C%22kishor%5C%22%7D
用户向我发送请求,并将数据作为参数传递给url。 url中的最后一个参数不过是用户数据。
http://localhost/codeigniter/myproject/myfunction/%7B%5C%22uid%5C%22%3A%5C%221234%5C%22%2C%5C%22uname%5C%22%3A%5C%22kishor%5C%22%7D
编码的数据只不过是他想要编码的json字符串,然后向我发送请求。 如果我使用php解析它,则会产生以下内容: '{"uid":"1234","uname":"kishor"}'
但是它在URL中不被接受,它给了我Object not found!
浏览器错误。
找不到对象!
在此服务器上找不到请求的URL。 如果您手动输入网址,请检查拼写,然后重试。
如果您认为这是服务器错误,请与网站管理员联系。 错误404
我尝试更改$config['permitted_uri_chars'] = 'az 0-9~%.:_\\-';
,但对我不起作用。
假设您的CodeIgniter设置正确且路由正确,则建议将JSON作为$_GET
参数发送:
http://localhost/codeigniter/myproject/myfunction/?json=%7B%5C%22uid%5C%22%3A%5C%221234%5C%22%2C%5C%22uname%5C%22%3A%5C%22kishor%5C%22%7D
因此,在CodeIgniter中,您应该能够简单地:
json_decode( $this->input->get( 'json' ) );
如果通过以下方式,则必须在函数中传递参数。
http://localhost/codeigniter/myproject/myfunction/%7B%5C%22uid%5C%22%3A%5C%221234%5C%22%2C%5C%22uname%5C%22%3A%5C%22kishor%5C%22%7D
像这样
function myfunction($param = ''){ echo $params; }
您通过的方式不正确。 如果需要获取并解码该值,请在控制器功能中使用以下方法
我不知道您的代码中哪个是控制器和功能,我想
myproject
是一个控制器。 所以,我在segment
传递了第三个参数3
// it will return %7B%5C%22uid%5C%22%3A%5C%221234%5C%22%2C%5C%22uname%5C%22%3A%5C%22kishor%5C%22%7D
$json_value = $this->uri->segment(3);
$json_value = (array) json_decode(stripslashes(urldecode($json_value)));
var_export($json_value);
输出
array (
'uid' => '1234',
'uname' => 'kishor',
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.