使用dojo.io.script异步加载Google Maps API V3失败

使用dojo.io.script异步加载Google Maps API V3失败,dojo,google-maps-api-3,Dojo,Google Maps Api 3,将谷歌的产品融入dojo的收益率: 或者摆弄它: maps JS文件已加载,但从未调用回调。为什么?dojo.io.script.get仅可用于JSONP服务。您的回调永远不会被调用,因为据我所知,该URL不会返回JSONP格式的响应,只返回纯JavaScript dojo.io.script.get设置一个回调,该回调将由该URL返回的代码触发。由于该URL指向纯ol'JavaScript,因此该函数永远不会被触发,因为响应不是JSONP。dojo.io.script.get仅可用于JSONP

将谷歌的产品融入dojo的收益率:

或者摆弄它:


maps JS文件已加载,但从未调用回调。为什么?

dojo.io.script.get仅可用于JSONP服务。您的回调永远不会被调用,因为据我所知,该URL不会返回JSONP格式的响应,只返回纯JavaScript


dojo.io.script.get
设置一个回调,该回调将由该URL返回的代码触发。由于该URL指向纯ol'JavaScript,因此该函数永远不会被触发,因为响应不是JSONP。

dojo.io.script.get
仅可用于JSONP服务。您的回调永远不会被调用,因为据我所知,该URL不会返回JSONP格式的响应,只返回纯JavaScript


dojo.io.script.get
设置一个回调,该回调将由该URL返回的代码触发。由于该URL指向纯ol'JavaScript,因此该函数永远不会被触发,因为响应不是JSONP。

看起来像是
dojo.io.script.get()
不支持Google Maps延迟调用JSONP回调


我已经填充了一个dojo。

看起来像是
dojo.io.script.get()
不支持Google Maps延迟调用JSONP回调

我已经填充了一个dojo。

还有另一种方法(在dojo 1.6上测试):

由于dojo.io.script.get返回延迟对象。

还有另一种方法(在dojo 1.6上测试):


由于dojo.io.script.get返回延迟对象。

dojo.io.script.get是否要求立即响应为JSONP?从中,可以通过JSONP回调来加载脚本,在其示例中为
initialize
。然而,Google的响应在调用回调之前加载了更多的文件。听起来好像Dojo过早地清理了它的全局回调?实际上,您看得对——更仔细地看响应,maps代码将回调函数的名称(来自Dojo.io.script.get)发送到某个地方,以便稍后调用。但是,很难说maps代码最终是如何调用它的,也有可能是以找不到函数的方式调用的(因为dojo.io.script.get会生成名称空间的回调函数,例如,
dojo.io.script.jsonpdojoioscostript1.\u jsonpCallback
).dojo.io.script.get
是否要求立即响应为JSONP?从中,可以通过JSONP回调来加载脚本,在其示例中为
initialize
。然而,Google的响应在调用回调之前加载了更多的文件。听起来好像Dojo过早地清理了它的全局回调?实际上,您看得对——更仔细地看响应,maps代码将回调函数的名称(来自Dojo.io.script.get)发送到某个地方,以便稍后调用。但是,很难说maps代码最终是如何调用它的,也有可能是以找不到函数的方式调用的(因为dojo.io.script.get会生成名称空间的回调函数,例如,
dojo.io.script.jsonp_dojoiostript1.\u jsonpCallback
)。
dojo.io.script.get({
  url: 'http://maps.googleapis.com/maps/api/js',
  jsonp: 'callback',
  content: {
    sensor: 'false'
  },
  load: function() {
    console.log('done');
  },
  error: function() {
    console.log('error');
  }
});
dojo.io.script.get({
  url: 'http://maps.googleapis.com/maps/api/js'
}).then(function() {
  console.log('done');
});