2014-01-27 40 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