我有一个jsonp请求通过geoserver检索功能信息,调用看起来像这样:
import Ember from 'ember';
export default Ember.Component.extend({
_selectParcel: function() {
function handleJson(data){
console.log(data);
}
$.ajax('url/geoserver/wms', {
type: 'GET',
data: {
service: 'WFS',
version: '1.1.0',
request: 'GetFeature',
typeName: 'name_here',
maxFeatures: 10000,
outputFormat: 'text/javascript',
srsname: 'EPSG:4326',
bbox: '-73.68229866027832, 40.97056664236637, -73.68229866027832, 40.97056664236637, EPSG:4326'
},
dataType: 'jsonp',
jsonpCallback: 'callback:handleJson',
jsonp: 'format_options'
});
}
});
我遇到的问题是处理回调范围 - 在这种情况下,handleJson()
我也试过
.then(function(){});
在ajax通话之后但没有运气。
将根据鼠标移动频繁调用_selectParcel。
如何在Ember组件中处理jsonp回调?
我已经看过这个using ember data with jsonp,但我不确定如何与组件中的适配器进行交互。
控制台错误如下所示:"未捕获的ReferenceError:未定义handleJson"上面写的方式 - " Uncaught ReferenceError:parseResponse没有定义"什么时候使用callback =?和" .then(function(){})"许
答案 0 :(得分:1)
好的,所以这里真的有2件。
对于第一个,我发现这个写有用Should Components Load Data
对于第二个,format_options和jsonpCallback键匹配的这个位就可以了。感谢您this link
$.ajax('url/geoserver/wms', {
type: 'GET',
data: {
service: 'WFS',
version: '1.1.0',
request: 'GetFeature',
typeName: 'name_here',
maxFeatures: 10000,
outputFormat: 'text/javascript',
srsname: 'EPSG:4326',
bbox: '-73.68229866027832, 40.97056664236637, -73.68229866027832, 40.97056664236637, EPSG:4326',
format_options: 'callback:getJson'
},
dataType: 'jsonp',
jsonpCallback: 'getJson'
}).then(function(data) {
console.log(data);
});
答案 1 :(得分:0)
尝试更改此行:
jsonpCallback: 'callback:handleJson'
到
jsonpCallback: 'handleJson'