我想用Backbone.js.实现一个搜索页面.搜索参数取自简单形式,服务器知道解析查询参数并返回结果的json数组.我的模型或多或少看起来像这样:
App.Models.SearchResult = Backbone.Model.extend({
urlRoot: '/search'
});
App.Collections.SearchResults = Backbone.Collection.extend({
model: App.Models.SearchResult
});
var results = new App.Collections.SearchResults();
Run Code Online (Sandbox Code Playgroud)
我希望每次执行时results.fetch(),搜索表单的内容也会随GET请求一起序列化.有没有一种简单的方法来添加它,或者我是以错误的方式执行它,并且可能应该手动编码请求并从返回的结果创建集合:
$.getJSON('/search', { /* search params */ }, function(resp){
// resp is a list of JSON data [ { id: .., name: .. }, { id: .., name: .. }, .... ]
var results = new App.Collections.SearchResults(resp);
// update views, etc.
});
Run Code Online (Sandbox Code Playgroud)
思考?
我需要重定向到一个url传递参数作为查询字符串.
这可以包括价值中的&符号.如
string value = "This & That";
Response.Redirect("http://www.example.com/?Value=" + Server.UrlEncode(value));
Run Code Online (Sandbox Code Playgroud)
然而,这会返回http://www.example.com/?Value=This+&+That
我应该用什么来编码这个字符串?
编辑:感谢Luke指出显而易见的,代码确实正常工作.我道歉,毕竟我的问题不是一个有效的问题!
我将要访问的页面有很多旧的遗留代码,它显然正在进行某种编码和解码,使得它看起来好像我的urlencode不能正常工作.
不幸的是,我的解决方案是完全放弃使用&,直到可以重写有问题的代码.难道你不讨厌旧代码!
弹性搜索中是否有一种方法可以提高文档中出现的确切短语的重要性?
例如,如果我正在搜索短语"web开发人员",并且如果单词"web developer"一起出现,那么与在整个文档中单独出现的"web"和"developer"相比,它们将被提升5.因此,任何包含"web开发者"的文档将首先出现在结果中.
也许我错过了一些东西,但似乎没有办法在Symfony2中的路由中定义查询字符串参数,以便它们可以传递到控制器中.
例如,不是生成类似/blog/my-blog-post(来自Symfony2的路由文档)的URI 并将其传递给以下路由:
# app/config/routing.yml
blog_show:
pattern: /blog/{slug}
defaults: { _controller: AcmeBlogBundle:Blog:show }
Run Code Online (Sandbox Code Playgroud)
我宁愿生成像这样的URI /blog?slug=my-blog-post.问题是我找不到任何地方slug在路由配置文件中定义参数(如上面的{slug}对应部分).
也许这是故意的,但是在查询字符串中使用GET参数的最佳做法是什么?
文档确实在使用查询字符串生成URL时提到它们,那么如何将它们传递给控制器?
我可以在哪里找到它们是Symfony2和HTTP Fundamentals:
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
// retrieve GET variables
$request->query->get('foo');
Run Code Online (Sandbox Code Playgroud)
这是在控制器内使用它们的最佳实践吗?
例如,在从URL读取和处理查询字符串值之后
http://myurl.com/#/?foo=baa
Run Code Online (Sandbox Code Playgroud)
我可以将URL更改为
http://myurl.com/#/?foo=
Run Code Online (Sandbox Code Playgroud)
通过使用
$location.search('myQueryStringParameter', '');
Run Code Online (Sandbox Code Playgroud)
如何完全摆脱查询字符串(没有显式重定向或服务器端操作等),以便只
http://myurl.com/#/
Run Code Online (Sandbox Code Playgroud)
留在浏览器中?它应该相当简单,但我找不到任何参考.
我想做这个,但我也想能够在阵列传递到查询字符串.我尝试过这样的事情:
http://www.sitename.com/route?arr[]=this&arr[]=that
http://www.sitename.com/route?arr[]=this&that
http://www.sitename.com/route?arr[0]=this&arr[1]=that
http://www.sitename.com/route?arr0=this&arr1=that
http://www.sitename.com/route?arr=this&arr=that
Run Code Online (Sandbox Code Playgroud)
我在C#代码中的路由如下所示:
[Route("route")]
[HttpGet]
public void DoSomething(string[] values)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
但在所有这些情况下,当它到达C#代码时,值始终为null.我需要什么查询字符串来传递字符串数组?
我正在实现一个REST API框架,我想知道当客户端提交无效的查询字符串参数时,推荐行为是什么.
我将用一个具体的例子来说明我的意思:说,我在/ api/contacts/endpoint上有一个API处理程序,并且处理程序提供了一个名为querystring的过滤器id,它使客户能够使用提供的ID选择某些联系人.
因此,GET或DELETE请求可能是/api/contacts/?id=2&id=4&id=lalalala.
显然,没有联系方式id=lalalala.在这种情况下,服务器应该是什么样的?
忽略无效的联系人id=lalalala,仅过滤有效ID,2和4上的联系人.
回复指示此错误的错误代码.如果是,应提供哪个错误代码?
提前致谢.
编辑:澄清; 我开发的框架的主要焦点是具有可预测的行为,因此具有响应代码.出于这个原因,我希望客户端使用基于此框架构建的API,以期获得最少的意外.所以,问题基本上是:在这种情况下API应该返回错误(如果是,那么)?或者忽略无效的过滤条目,只过滤正确的查询字符串参数?
所以试着用Javascript中的window.location来弄清楚如何做到这一点.我向用户发送了一个带有Google Analytics代码的附加网址,我需要将该代码传递给该网页上的iframe src.我假设Javascript可以做到这一点(注意 - 我不能使用PHP)...
这就是我想要做的:
我会将用户发送到包含所有广告系列数据的页面.例如,用户可以点击此链接:http://www.xyz.com/index.html?utm_source = Facebook&utm_campaign = Facebook + May&utm_medium = click
它们会被定向到那个页面,然后就会有这个iFrame.商店一侧的代码需要选择utm_source,utm_campaign,utm_medium并在IFRAME SRC中包含这些部分所以这一点:
<iframe height="960px" frameborder="0" scrolling="no" width="958px" src="http://www.abc.com/minis"></iframe>
Run Code Online (Sandbox Code Playgroud)
现在变成:
<iframe height="960px" frameborder="0" scrolling="no" width="958px" src="http://www.abc.com/minis?utm_source=Facebook&utm_campaign=Facebook+May&utm_medium=click"></iframe>
Run Code Online (Sandbox Code Playgroud)
任何JavaScript建议将不胜感激.注意 - 我不能使用PHP.
更新:让这个工作!是的,但现在我需要编辑一下:
所以说附加的网址是clciked:
http://abc.com/index.html?apple&orange&peach
Run Code Online (Sandbox Code Playgroud)
我需要iframe src才能做到这一点
http://xyz.com/minis?orange&peach
Run Code Online (Sandbox Code Playgroud)
我在脚本中移动了一些东西,但现在只抓橙色而不是其他属性(桃子).请告知是否有更好的工作方式(没有所有的参数,然后根据什么链接进来,一些&将是未定义的:
<body>
<script type="text/javascript">
$(function() {
var loc = window.location.toString(),
params = loc.split('&')[1],
params2 = loc.split('&')[2],
params3 = loc.split('&')[3],
params4 = loc.split('&')[4],
params5 = loc.split('&')[5],
params6 = loc.split('&')[6],
iframe = document.getElementById('myIframe');
alert(iframe.src);
iframe.src = iframe.src + …Run Code Online (Sandbox Code Playgroud) javascript iframe google-analytics window.location query-string
我有一个变量
string rawURL = HttpContext.Current.Request.RawUrl;
Run Code Online (Sandbox Code Playgroud)
如何读取此URL的查询字符串参数?
在Scala中,如何以编程方式使用查询字符串参数构建URL?
另外,如何将String包含查询字符串参数的URL 解析为允许我以编程方式编辑查询字符串参数的结构?
query-string ×10
c# ×3
url ×3
asp.net ×2
parameters ×2
angularjs ×1
api ×1
asp.net-core ×1
backbone.js ×1
dsl ×1
elastica ×1
iframe ×1
javascript ×1
parsing ×1
rest ×1
routing ×1
scala ×1
search ×1
symfony ×1
term ×1