2014-01-27 3 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 в моем проекте, и я был в замешательстве. Может ли кто-нибудь сказать мне, как формируется это ниже url param ?.Как формируется этот URL-адрес?

'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 = выбрать абстрактный, clickurl, dispurl, title из search.web где query = "'' –

+0

Используйте URL-декодеры здесь: http://meyerweb.com/eric/tools/dencoder/ .. это разрешено http://query.yahooapis.com/v1/public/yql?q=select abstract, clickurl, dispurl, название из search.web, где query = " – user1428716

ответ

1

Это запрошенный по URL запрос. Раскодированный это выглядит следующим образом:

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

сошлюсь на Yahoo API: http://developer.yahoo.com/yql/console/

2

взглянуть на DecodeURLComponent

decodeURIComponent ('д = выберите% 20abstract% 2Cclickurl% 2Cdispurl% 2Ctitle % 20from% 20search.web% 20where% 20query% 3D% 22')

Результат будет выглядеть так:

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

Обычно, когда вы передаете данные в querystring, специальные символы, такие как запятая, дефисы, пробелы, кодируются, чтобы сделать правильный адрес URL. Если он содержит пробел или другие символы, это сделает URL неверным. Поэтому есть смысл писать рукописный url.

+0

Что делает окончательный обратный вызов param =? имею в виду. – Shane

+0

- это адрес, на который будет перенаправлен ответ, например. когда вы совершаете покупки в Интернете, вы платите с помощью какого-либо платежного шлюза после успешного/отказа платежа, вы перенаправляетесь на страницу успеха или страницы ошибки на сайте покупок, этот обратный вызов содержит адрес, на который будет отправлен ответ –

+0

его функция обратного вызова для JSON Data - обратный вызов - Имя функции обратного вызова JavaScript для формата JSONP. Если обратный вызов задан, и если format = json, то формат ответа - JSON. "?" будет означать отсутствие обратного вызова .. но, пожалуйста, запустите консоль YQL, чтобы подтвердить это – user1428716

Смежные вопросы