0

少し前に、stackoverflow のおかげでこのフィドルが機能していました: http://jsfiddle.net/AUbZn/16/今はもうありません :/

何らかの理由で、OPTION メソッドでリクエストが yahoo に送信されているようです。これは、この URL がオプション化されているため、関連する部分です。

var layer = new OpenLayers.Layer.Vector("GML", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
    url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fopenlayers.org%2Fdev%2Fexamples%2Fgml%2Fpolygon.xml'",
    format: new OpenLayers.Format.GML(),
}),
eventListeners: {
    "featuresadded": dataLoaded
},
});

それを修正する理由と方法はありますか?

4

1 に答える 1

0

解決策を見つけました:)

この例に従って OpenLayers.Protocol.HTTP の代わりに OpenLayers.Protocol.Script を使用する: http://openlayers.org/dev/examples/cross-origin-xml.html

作業コード:

var layer = new OpenLayers.Layer.Vector("GML", {
    strategies: [new OpenLayers.Strategy.Fixed()],
    protocol: new OpenLayers.Protocol.Script({
        url: "http://query.yahooapis.com/v1/public/yql",
        params: {
            q: "select * from xml where url='http%3A%2F%2Fopenlayers.org%2Fdev%2Fexamples%2Fgml%2Fpolygon.xml'",
        },
        format: new OpenLayers.Format.GML(),
        parseFeatures: function(data) {
            return this.format.read(data.results[0]);
        },
    }),
    eventListeners: {
        "featuresadded": featuresLoaded
    },
});
于 2013-01-12T10:46:28.043 に答える