当使用fetch API从浏览器(chrome)发布查询字符串参数,然后在服务器端使用php-laravel解析参数时,遇到一个非常奇怪的问题,参数键前面带有双问号。
如果这很重要,我正在使用aurelia访存客户端。
let url = new URL('https://myapp.com/api/companies/');
let param = {'id_owner': 34};
url.search = new URLSearchParams(param);
this.http.fetch(url, {
mode: 'cors',
method: 'get'
})
在服务器端,当我尝试访问id_owner
时,什么都没有显示。
我在控制器(laravel)和输出
public function index(Request $request)
{
return [$_SERVER['REQUEST_URI'], $_SERVER['QUERY_STRING'], $_POST, $_GET, $request->query('??id_owner'), $request->all()];
并且令人惊讶的是,输出中包含在键之前的双问号
[
"\/api\/companies\/?id_owner=34", // [$_SERVER['REQUEST_URI']
"??id_owner=34", // $_SERVER['QUERY_STRING']
[], // $_POST
{"??id_owner":"34"}, // $_GET
"34", // $request->query('??id_owner') , a laravel feature
{"??id_owner":"34"} // $request->all() , again a laravel feature
]
理想情况下,使用$ _GET ['id_owner']来获取值应该简单明了,但是带有问号却无法正常工作。他们来自哪里 ?知道出了什么问题吗?