我正在使用CodeIgniter 3.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"}'
但是在网址中不接受它,它在浏览器中出现Object not found!
错误。
找不到对象!
在此服务器上找不到请求的URL。如果您手动输入了URL,请检查拼写,然后重试。
如果您认为这是服务器错误,请与网站管理员联系。 错误404
我尝试更改$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
,但它对我不起作用。
答案 0 :(得分:0)
假设您的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' ) );
答案 1 :(得分:0)
如果你通过以下方式,则必须传递函数中的参数。
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; }
答案 2 :(得分:0)
你通过的方式不是一个正确的方法。如果需要获取并解码该值,请在控制器函数中使用以下方法
我不知道哪一个是控制器&函数在你的代码中,我猜
中传递了第3个参数myproject
是一个控制器。所以,我在segment
// 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',
)