2014-01-27 35 views
0
http://query.yahooapis.com/v1/public/yql?'+ 
     'q=select%20abstract%2Cclickurl%2Cdispurl%2Ctitle%20'+ 
     'from%20search.web%20where%20query%3D%22'+ 
     $('#search').val()+ 
     '%22&format=json&+ 
     'callback=?' 

我只是困惑在这url这是如何形成的。 url在我的项目中是hardcoded,我很困惑。任何人都可以告诉我这是如何下面的网址参数形成?这个网址是如何形成的?

'q=select%20abstract%2Cclickurl%2Cdispurl%2Ctitle%20'+ 
      'from%20search.web%20where%20query%3D%22' 

并且在从前端发送搜索值之后,该代码再次出现在url中硬编码。

'%22&format=json&+ 
      'callback=?' 

这是我在front-end中使用的表格。

<form action="#" id="f"> 
    <div> 
     <label for="search">Search</label> 
     <input type="text" value="kittens" id="search"> 
     <input type="submit" id="s" value="go"> 
    </div> 
</form> 
<div id="results"></div> 
+0

它可以很好地手写。那么它是什么让你成为一个问题? – Quentin

+0

''q = select%20abstract%2Cclickurl%2Cdispurl%2Ctitle%20from%20search.web%20where%20query%3D%22'' decoded =''q =从search.web中选择abstract,clickurl,dispurl,title =“'' –

+0

在这里使用URL解码器:http://meyerweb.com/eric/tools/dencoder/ ..这解决了http://query.yahooapis.com/v1/public/yql?q=select抽象, clickurl,dispurl,title from search.web where query =“ – user1428716

回答

2

DecodeURLComponent

decodeURIComponent(“Q =选择%20abstract%2Cclickurl%2Cdispurl%2Ctitle看看%20from%20search.web%20where%20query%3D%22' )

结果将是:

"q=select abstract,clickurl,dispurl,title from search.web where query="" 

通常,当您在查询字符串中传递特殊字符(如逗号,连字符,空格)时,会对数据进行编码以生成URL有效地址。如果它包含空格或其他这样的字符,它会使网站无效。所以那里写手写的URL是有道理的。

+0

最后一个参数回调=?意思。 – Shane

+0

即响应将被重定向的地址,例如,当您在网上购物时,您在成功/失败付款后使用某个支付网关付款,您将被重定向到购物网站的成功页面或错误页面,该回叫包含回复将发送到的地址。 –

+0

其JSON数据回调函数 - 回调 - JSONP格式的JavaScript回调函数的名称。如果设置了回调并且format = json,则响应格式为JSON。 “?”将意味着没有回调..但请运行YQL控制台来确认它 – user1428716