这个网址是如何形成的?

时间:2014-01-27 16:02:56

标签: javascript jquery json

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,我很困惑。谁能告诉我这个url param是如何形成的?。

'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>

2 个答案:

答案 0 :(得分: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无效。所以有意义写手写网址。

答案 1 :(得分:1)

它是一个url编码查询。解码它看起来像这样:

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

我会参考yahoo api:http://developer.yahoo.com/yql/console/