在我的 PHP 应用程序中,我使用此代码来获取请求
$this->request->get
这将返回所有数据
Array
(
[rt] => extension/dump
[type] => xls
[controller] => list/product
[s] => administration
[token] => s7KO9PkoPmgpQmZjPQOimTbdKMB85uGa
[filters] => {"_search":true,"nd":1542700897278,"rows":20,"page":1,"sidx":"date_modified","sord":"desc","filters":"{\"groupOp\":\"AND\",\"rules\":[{\"field\":\"name\",\"op\":\"cn\",\"data\":\"Lemon
[Eucalyptus\"}]}"}] =>
)
然而,下一个代码削减了数据
$this->request->get['filters']
仅返回部分数据(请参阅删除“过滤器”的结尾)
{"_search":true,"nd":1542700897278,"rows":20,"page":1,"sidx":"date_modified","sord":"desc","filters":"
{\"groupOp\":\"AND\",\"rules\":[{\"field\":\"name\",\"op\":\"cn\",\"data\":\"Lemon
是否有任何解决方法可以在“过滤器”中获取完整数据?将对象转换为数组无济于事
更新:js 控制台输出
{_search: false, nd: 1542700894743, rows: 20, page: 1, sidx: "date_modified", …}
filters: "{"groupOp":"AND","rules":[{"field":"name","op":"cn","data":"Lemon & Eucalyptus"}]}"
nd: 1542700897278
page: 1
rows: 20
sidx: "date_modified"
sord: "desc"
_search: true
Request URL: http://blablabla&filters={%22_search%22:true,%22nd%22:1542700897278,%22rows%22:20,%22page%22:1,%22sidx%22:%22date_modified%22,%22sord%22:%22desc%22,%22filters%22:%22{\%22groupOp\%22:\%22AND\%22,\%22rules\%22:[{\%22field\%22:\%22name\%22,\%22op\%22:\%22cn\%22,\%22data\%22:\%22Lemon%20&%20Eucalyptus\%22}]}%22}
请求方式:GET
它与&符号有某种关系吗?
假设您在 JS 中创建 URL 和查询参数,您需要对所有参数进行编码以在 URL 中使用。
在你的情况...
const filters = {
"groupOp": "AND",
"rules": [
{
"field": "name",
"op": "cn",
"data": "Lemon & Eucalyptus"
}
]
}
const url = `http://blablabla?filters=${encodeURIComponent(JSON.stringify(filters))}`
document.write(`<pre>${url}</pre>`)
注意&
in"Lemon & Eucalyptus"
已经变成%26
一个额外的问题是某些东西正在对您的请求参数进行 HTML 编码。除非您专门在 HTML 文档中显示信息,否则您不应该这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句