我正在创建一个具有搜索功能的应用程序,我希望它的设置类似于 Google 或 Twitter 搜索,其中在根 URL 处有一个带有搜索表单的登录页面,然后通过查询传递来自该表单的数据字符串,它构成了结果页面的 URL(例如:www.domain.com/search?query=my+search+query)。
到目前为止,我知道如何通过使用 params 哈希的搜索传递数据,但我想知道如何传递数据并使用查询字符串访问它。
我最好的猜测是它是通过路由完成的,您在路由中包含以下内容以进行搜索操作:
:query => params[name_of_search_form_element]
Run Code Online (Sandbox Code Playgroud)
然后使用 params 哈希在控制器中访问这个值,但我不确定这是否是最好的方法。有什么想法吗?谢谢!
我正在开发一个调用 PHP 二进制文件(通过 CGI)来处理脚本的网络服务器。
这是问题所在:
PHP 脚本没有选择命令行参数。例如,如果客户端请求path/to/file.php?test=value,则$_GET数组为空。
我试过在环境变量 ( QUERY_STRING) 中传递参数,但它们仍然没有显示出来。
如何将查询字符串参数传递给 PHP 应用程序?
给定以下Web API控制器操作:
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
Run Code Online (Sandbox Code Playgroud)
即使查询字符串中的参数不存在,执行以下请求也不会失败:
http://localhost:22297/api/values?someinvalidparameter=10
Run Code Online (Sandbox Code Playgroud)
有没有办法确保查询字符串中的所有参数都是被调用操作的有效参数?
我有一个像下面这样的网址,
http://test.com/testing/test/12345
Run Code Online (Sandbox Code Playgroud)
12345 是 ID。我想使用查询字符串来获取它。如何在javascript中取这个值?
在标准 URI 查询字符串中,我是否允许=在查询组件的值部分中使用未编码的等号 ( )。换句话说,我是否允许在第一个等号之后但在&分隔组件之前的另一个等号?例如,以下有效吗?
index.html?param1=a_value_with_=_sign¶m2=12=13
从我阅读什么是有效的,什么不在 URI 查询中?,它总结了 RFC 3986,在组件中使用 equals不会“与保留字符作为分隔符的用途相冲突”,因为在这种情况下很明显,只有每个组件中的第一个 equals 用作分隔符。所以我认为我应该能够做到这一点。
这是我的公共方法(APIUtility)
public static string GetRequestData(string key, string defaultVal)
{
if (HttpContext.Current != null && HttpContext.Current.Request != null)
{
return HttpContext.Current.Request[key] == null || HttpContext.Current.Request[key].Trim() == "" ? defaultVal : HttpContext.Current.Request[key].Trim();
}
else
{
return defaultVal;
}
}
Run Code Online (Sandbox Code Playgroud)
让 html 使用 javascriptlocation.href(aa.json?key=value&key1=value1....)去 url 我的类功能
在函数 aa 中使用了string getUrlValue = APIUtility.GetRequestData(key name)get Querystring。
用户使用手机浏览器(OppoBrowser或safari..)通过我的html页面跳转到服务器功能Unable to get querystring为空,但如果使用电脑正常。
希望你能明白我想表达的意思。
我是一个全新的 fastify,但我有一个 fastify 服务器正在运行。我想解析查询字符串,例如:
http://fake.com/?user=123&name=ali
Run Code Online (Sandbox Code Playgroud)
我想从上面的 URL 中获取“用户”和“名称”值。我目前的代码是这样的:
fastify.route({
method: 'GET',
url: '/',
handler: async (request, reply) => getCompanyUsers(request, reply, services)
});
Run Code Online (Sandbox Code Playgroud)
我想获取“user”和“name”的值,然后将这些值传递给 getCompanyUsers 函数。
任何帮助表示赞赏。
谢谢
request.querystring node.js query-string querystringparameter fastify
我想在window.location.search 不重新加载文档的情况下进行更新,然后根据window.location.search.
当用户单击按钮时,该按钮的onclick事件会触发以下函数:
window.history.pushState({action : 'myAction'}, document.title, '?action=myAction');
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。window.location.search浏览器 URL 栏中的更新。
但是我找不到检测此更新的通用后台事件侦听器-类似于onhashchange查询字符串。
我能想到的最好的是:
window.history.pushState({action : 'myAction'}, document.title, '?action=myAction');
window.history.pushState({action : 'myAction'}, document.title, '?action=myAction');
window.history.back();
window.addEventListener('popstate', () => console.log(event.state.action));
Run Code Online (Sandbox Code Playgroud)
这有效,但我相信必须有更优雅的方法。
我正在使用 Next.js 应用程序中的查询参数过滤来自 API 的结果。我想使用useRouter()相同的键推送多个不同的过滤器,因此我的查询参数可能如下所示:
?page=1&skill=html&skill=css&skill=js
Run Code Online (Sandbox Code Playgroud)
我可以将每个参数传递给我的 API 请求。现在,当我尝试添加技能参数时,我正在使用router.push它,如下所示:
const router = useRouter();
const addFilter = (skill: string) => router.push({ query: { ...router.query, skill: skill.toLowerCase() } });
Run Code Online (Sandbox Code Playgroud)
但显然它会覆盖之前的技能,所以我只能在 URL 中获得其中一个技能。如何使用相同的键添加其他查询参数,最好使用useRouter()or next/router?
我尝试通过版本 6 中的 React router dom 文档以这种方式从 URL 获取查询参数
import * as React from "react";
import { useSearchParams } from "react-router-dom";
function App() {
let [searchParams, setSearchParams] = useSearchParams();
function handleSubmit(event) {
event.preventDefault();
let params = serializeFormQuery(event.target);
setSearchParams(params);
}
return (
<div>
<form onSubmit={handleSubmit}>{/* ... */}</form>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
但它返回了我空对象
我尝试了其他方法
import React from "react";
import ReactDOM from "react-dom";
import { Link, useLocation, BrowserRouter as Router } from "react-router-dom";
function User({ name }) {
return <div>{name}</div>;
}
function useQuery() { …Run Code Online (Sandbox Code Playgroud)