2012-12-06 5 views
1

URL의 &callback 매개 변수는 어떤 기능을합니까? 내가 묻는 이유는 내가 jquery의 $ .ajax 함수를 사용하여 쿼리를 실행하고 있는데 URL 끝에 &callback=?을 포함하면 400 (잘못된 요청) 오류가 발생합니다. "message":"Invalid value for parameter callback: ?"URL 및 콜백 매개 변수

: 나는 쿼리에를 떠날 때이 오류를 반환하기 때문에 내가 URL에 &callback=?를 추가 라인을 주석 처리 한

var energy_query_array = []; 


var masterEnergyTable_tableid = '145TOXaanydD63tvgVMmCVH0hei0NXNCEK8ekZBg'; 
var current_date = 'Jan-12'; 

var energy_query = 'SELECT * FROM ' + masterEnergyTable_tableid; 

var encoded_energy_query = encodeURIComponent(energy_query); 
var energy_url = ['https://www.googleapis.com/fusiontables/v1/query']; 
energy_url.push('?sql=' + encoded_energy_query); 
energy_url.push('&key=' + apiKey); 
//energy_url.push('&callback=?'); 
$.ajax({ 
url: energy_url.join(''), 
datatype: 'jsonp', 
success: function(data) { 
      var name_array = data['columns']; 
      var data_array = data['rows'][0]; 
     for(var i = 1; i < data['columns'].length; i++) { 
     energy_query_array[name_array[i]] = data_array[i]; 
     } 
    } 
}); 

console.log(energy_query_array);

: 여기

내 자바 스크립트 코드

그러나 코드의 앞부분에서 콜백에 동일한 매개 변수를 사용하는 Google 퓨전 테이블과 유사한 쿼리를 수행했습니다.

코드 끝에 console.log를 호출하면 콘솔에 빈 배열이 표시됩니다.

+1

아마도 JSONP를 사용하고 있으며 연결하려는 서버가 지원하지 않습니다. 'callback' 매개 변수는 JSONP를 작동시키기 위해 필요합니다. – freakish

+0

실제 요청 URI는 어떤 모양입니까? – BenM

+0

자바 스크립트 코드를 표시하십시오. –

답변

0

읽기에 대한 Query Strings

그들은 ?로 시작하고 추가 매개 변수는 &와 concatnated 얻을. ?은 인코딩되지 않은 한 문자열의 시작 부분이 될 수 없습니다.

그런 다음 표준 GET 요청이 수행되는 방식이므로 키 값 쌍을 서버에서 사용할 수 있습니다. 예를 들어

: 귀하의 웹 서버가 아마 어딘가에 쿼리 문자열에 질식

http://myserver.com?name=josh&age=24&state=il

.

0

콜백은 JSONP 요청에 사용되며 JSON 데이터를 가져 오기 위해 상호 도메인 요청을 수행 할 때 사용됩니다. XHR 래퍼를 사용하는 대신 script 태그를 사용하여 내부의 모든 JSON 데이터를 전달하는 데 사용되는 함수를 가리키는 callback querystring 매개 변수를 전달합니다. 이렇게하면 응용 프로그램의 작동 방식을 모르는 데이터 포인트를 가질 수 있지만 콜백을 전달하면 데이터가 포함 된 함수가 실행됩니다. 이렇게하면 모든 브라우저에서 API를 사용할 수 있습니다.

0

쿼리 문자열 (또는 호스트 이름과 조각 ID 사이의 다른 모든 데이터)과 마찬가지로 다른 일부 데이터와 마찬가지로 서버에 일부 데이터를 제공합니다. 의미는 전적으로 해당 서버에서 실행중인 소프트웨어에 의해 결정됩니다.

은 편안하고 API에서 JSON-P 응답에서 호출 할 함수의 이름으로 사용하는 값에 대한 키로 callback를 사용하는 대회 있습니다. JSON-P은 CORS를 지원하지 않는 브라우저의 출처를 통해 액세스 할 수있는 웹 서비스를 제공하는 수단입니다.

http://example.com/foo?callback=asdf 

분명히 서버 지원은 JSON-P 응답의 전송해야합니다, 당신에게

asdf([1,2,3]); 

JSON-P를 줄 것이다.jQuery로 원점 교차 요청을 수행하려고하면 서버가 일반적인 규칙을 사용하여 JSON-P를 지원한다는 가정하에 요청을 수정합니다 (기본적으로).