2014-07-16 4 views
-1

크로스 도메인 문제를 피하기 위해 자바 스크립트 작업 중에 JSONP 메소드를 사용하고 있습니다.javascript jsonp 콜백 함수로 작업하기

하지만 논리를 이해할 수 없었습니다. 나는이 같은 결과를 반환하는 서비스를 사용하고 있습니다 :

parseResponse({"type":"FeatureCollection",......}) 

Servcice 링크는 여기 :

$.ajax({ 
    type: 'GET', 
    url: url, 
    dataType: 'json', 
    success: function(json) { 
     $(".test").html(json.type); 
    }, 
    error: function(e) { 
     console.log(e); 
    } 
}); 

이 아약스 :이 같은 JQuery와 아약스 요청을 사용하고 http://giswebservices.massgis.state.ma.us/geoserver/wms?VERSION=1.1.1&REQUEST=GetFeatureInfo&LAYERS=massgis:GISDATA.ACECS_POLY&SRS=EPSG:26986&BBOX=11830.0,776202.9449152543,348201.0,961492.0550847457&WIDTH=708&HEIGHT=390&INFO_FORMAT=text/javascript&FEATURE_COUNT=100&QUERY_LAYERS=massgis:GISDATA.ACECS_POLY&X=120&Y=109&FORMAT&STYLES=&SERVICE=WMS

항상 오류 기능을 작동합니다. 그러나 요청 결과가 실현됩니다. parseResponse 콜백 함수를 어떻게 catch 할 수 있습니까? 서비스도 사용자 정의 콜백 매개 변수없이, 기본적으로 JSONP 응답을 반환 여기

내 작업 코드 http://jsfiddle.net/barteloma/E9j7c/

+1

JSONP이므로 'data type'을''jsonp ''가 아니라 ''jsonp ''로 설정해야합니다. [수동] (http://api.jquery.com/jQuery.ajax/) – hindmost

답변

-1

입니다, 내가 찾은 가장 빠른 해결책은 오류에서 응답 텍스트를 얻고 그것을 평가하는 것입니다 :

var url = "http://giswebservices.massgis.state.ma.us/geoserver/wms?VERSION=1.1.1&REQUEST=GetFeatureInfo&LAYERS=massgis:GISDATA.ACECS_POLY&SRS=EPSG:26986&BBOX=11830.0,776202.9449152543,348201.0,961492.0550847457&WIDTH=708&HEIGHT=390&INFO_FORMAT=text/javascript&FEATURE_COUNT=100&QUERY_LAYERS=massgis:GISDATA.ACECS_POLY&X=120&Y=109&FORMAT&STYLES=&SERVICE=WMS"; 

function parseResponse(data) { 
    console.log('parse', data); 
} 

$.ajax({ 
    type: 'GET', 
    url: url, 
    dataType: 'json', 
    success: function(json) { 

    }, 
    error: function(e) { 
     eval(e.responseText); 
    } 
}); 
+0

내 서비스 링크 dierctly my_callback ({...}) 결과를 반환합니다, 그것은 콜백 매개 변수가 필요하지 않습니다. JSONP처럼 사용할 수 있습니까 – barteloma

+0

@bookmarker 내 대답을 편집했습니다. –