[英]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.