phonegap을 사용하여 Sencha-Touch 앱을 패키징하려고 할 때 문제가 발생했습니다. 모든 것은 phonegap에서 WFS에 액세스하는 것 외에는 잘 작동합니다. (그리고 앱은 브라우저에서 실행해도 문제가 없습니다. WFS 액세스는 정상입니다)phonegap WFS 프록시 문제
내 phonegap 버전은 2.9이며, openlayer 버전은 2.13입니다.
여기 간단한 코드를 제공합니다. 다음 사이트의 예제 코드를 확인할 수도 있습니다. http://openlayers.org/dev/examples/wfs-filter.html
var rootUrl = window.location.protocol + "//"+ window.location.host + '/'; var map;
function init() {
map = new OpenLayers.Map({
div: "map",
layers: [
new OpenLayers.Layer.WMS(
"Natural Earth",
"http://demo.opengeo.org/geoserver/wms",
{ layers: "topp:naturalearth" }
),
new OpenLayers.Layer.Vector("WFS", {
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
url: rootUrl + 'proxy.py?url=http://demo.opengeo.org/geoserver/wfs',
featureType: "tasmania_roads",
featureNS: "http://www.openplans.org/topp"
}),
styleMap: new OpenLayers.StyleMap({
strokeWidth: 3,
strokeColor: "#333333"
}),
})
],
center: new OpenLayers.LonLat(146.7, -41.8),
zoom: 6
});
}
phonegap에는 WMS에 액세스하는 데 문제가 없지만 WFS를 시도하면 작동하지 않습니다.
앞서 보여준 링크와 비교하면지도에 도로가 표시되며 WFS를 통해 도로가 표시됩니다. 내 phonegap 앱에서 도로가 표시되지 않습니다.
나는 그것이 WFS 이슈인지, 아니면 전화 갭 문제인지 궁금해. 내 phonegap 앱에서 WFS에 대한 내 액세스가 차단되었습니다.
제게 몇 가지 제안과 힌트를주세요. 나는 정말로 감사 할 것이다.
function getLayerList() {
$.ajax({ url: rootUrl + 'proxy.py?url=http://192.168.0.23/LBEService/Service1.svc/GetEventList',
//async: false,
data: JSON.stringify({}),
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (result) {
console.log(result);
$("#demo").html(result[0].event_NAME);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
}).done(function() {
});
}
답장을 보내 주셔서 감사합니다. xml 폴더 아래의 config.xml 파일에서이 " "을 찾을 수 있습니다. 이는 모든 도메인에 액세스 할 수 있지만 WFS에 대한 내 액세스를 여전히 무시하고 있음을 의미합니다. 좀 더 힌트를 주시겠습니까, 정말 고맙습니다. –
Will
또한 phonegap의 모든 도메인에 대한 액세스를 비활성화하면 WMS에 액세스 할 수 없으므로 " "이 실제로 작동합니다. –
Will
사파리를 통해 요청을 살펴 보았습니까? 감찰관이나 피들러 등을 제거 하시겠습니까? 그들이 실제로 전화 걸기에서 벗어나고 그들이 어떻게 생겼는지 확인합니다. – Scott