Java 将ajax成功值传递给JS函数

Java 将ajax成功值传递给JS函数,java,javascript,jquery,ajax,Java,Javascript,Jquery,Ajax,我有一个从后端servlet获取值的ajax,现在我想将成功值传递到Java脚本函数中。如何传递 应在此行插入成功值 地点:[结果3] 以下是我的Java脚本: <script type="text/javascript"> var result3; function main() { $.ajax({ url:'insertPos', // data: {data : data}, type

我有一个从后端servlet获取值的ajax,现在我想将成功值传递到Java脚本函数中。如何传递

应在此行插入成功值 地点:[结果3]

以下是我的Java脚本:

<script type="text/javascript">


  var result3;
  function main()
  {
     $.ajax({
            url:'insertPos',
        //  data: {data : data},
            type:'get',             
             success:function(value)    
            {
                  result3= value;
                  callBackHnadler(result3)

            }

        });

  }

  function callBackHnadler(response) {



    MQA.EventUtil.observe(window, 'load', function() {

    /*Create an object for options*/
    var options={
      elt:document.getElementById('map'),        /*ID of element on the page where you want the map added*/
      zoom:12,                                    /*initial zoom level of map*/
      latLng:{lat: 12.922050, lng: 77.559933},   /*center of map in latitude/longitude*/
      mtype:'osm'                                /*map type (osm)*/
      };

    /*Construct an instance of MQA.TileMap with the options object*/
    window.map = new MQA.TileMap(options);

    MQA.withModule('route','routeio','largezoom','mousewheel','viewoptions',function() {



      /*Creates an MQA.RouteIO instance giving the endpoint of our new Directions Service as the
      first parameter and true that we will not use a proxy as the second (enables JSONP support to
      avoid server side proxies for route request and results communication).*/

      var io = new MQA.RouteIO(MQROUTEURL,true);

      /*Creates an MQA.RouteDelegate for defining default route appearance and behavior.*/
      delegate = new MQA.Route.RouteDelegate();

      /*The delegate is also required to customize the pois, in this sample adds rollover content*/

      var strContent = new String();
      strContent += "<h1><i><p><a href='javascript:insert();'>insert</a></p></i></h1>   <h1><i><p><a href='javascript:RePosition();'>re-position</a></p></i></h1>  <h1><i><p><a href='javascript:remove();'>remove</a></p></i></h1>    <h1><i><p><a href='javascript:convert();'>convert</a></p></i></h1> ";
        delegate.customizePoi = function(thePoi) {
        thePoi.setRolloverContent("Stop # : " + thePoi.stopNumber);
        thePoi.setInfoContentHTML(strContent);
        };  

      /*Creates an MQA.RouteController for managing the route while it is on the map. A key function of the route
      controller is to provide dragging capabilities to a route. The last parameter here is optional and is what is used
      to determine if the route should be draggable (this will be true by default if not provided).*/
    routeController= map.createRoute(delegate,io,{routeOptions:{routeType:'fastest'},ribbonOptions:{draggable:true, draggablepoi:true,ribbonDisplay:{color:"#00FF40", colorAlpha:0.75}}});


      /*Executes the route request back to our Directions Service.*/
      io.route({

        /*First parameter to the MQA.RouteIO.route function defines the route request.*/
        locations: [response], 
        mapState: routeController.delegate.virtualMapState(map)
       },

      /*The second parameter to the MQA.RouteIO.route function defines the IO settings.*/
      { timeout: 10000 },

      /*The final parameter to the MQA.RouteIO.route function is the callback function to execute
      the IO request as completed.*/
      function(results) {

        /*Takes the results of the route request and applies them to the map. The route ribbon will
        be drawn on the map along with the placement of POI's at each point.*/
        routeController.setRouteData(results.route);


        /*Change the map to display a best fit of the data.*/
        map.bestFit();


      });                                                                                                                                                        
         map.addControl(
         new MQA.LargeZoom(),
         new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT, new MQA.Size(1505,50)));   
         map.enableMouseWheelZoom();
         map.addControl(new MQA.ViewOptions());

     });     

  });

  } 
</script>

var结果3;
函数main()
{
$.ajax({
url:'insertPos',
//数据:{data:data},
类型:'get',
成功:功能(价值)
{
结果3=数值;
callBackHnadler(结果3)
}
});
}
函数callBackHnadler(响应){
观察(窗口'load',函数(){
/*为选项创建对象*/
var期权={
elt:document.getElementById('map'),/*ID是要添加映射的页面上的元素*/
缩放:12,/*地图的初始缩放级别*/
纬度:{lat:12.922050,lng:77.559933},/*地图的纬度/经度中心*/
mtype:'osm'/*映射类型(osm)*/
};
/*使用options对象构造MQA.TileMap的实例*/
window.map=new MQA.TileMap(选项);
MQA.withModule('route','routeio','largezoom','mousewheel','viewoptions',function(){
/*创建一个MQA.RouteIO实例,将新方向服务的端点作为
第一个参数为true,我们将不使用代理作为第二个参数(使JSONP支持
避免使用服务器端代理进行路由请求和结果通信)*/
var io=新的MQA.RouteIO(MQROUTEURL,true);
/*创建MQA.RouteDelegate以定义默认路由外观和行为*/
delegate=new MQA.Route.RouteDelegate();
/*委托还需要自定义POI,在此示例中添加了滚动内容*/
var strContent=新字符串();
strContent+=“”;
delegate.customizePoi=函数(thePoi){
POI.setRolloverContent(“停止:”+POI.Stop编号);
setInfoContentHTML(strContent);
};  
/*创建MQA.RouteController,用于在路由位于映射上时管理路由。路由的关键功能
控制器将提供到路线的拖动功能。此处最后一个参数是可选的,是使用的参数
确定路线是否应可拖动(如果未提供,则默认情况下为真)*/
RouteControl=map.createRoute(委托,io,{routeOptions:{routeType:'faster'},ribbonOptions:{DragTable:true,DragablePOI:true,ribbonDisplay:{color:#00FF40,colorAlpha:0.75});
/*执行返回到我们的方向服务的路由请求*/
io.路线({
/*MQA.RouteIO.route函数的第一个参数定义路由请求*/
地点:[答复],
mapState:RouteControl.delegate.virtualMapState(地图)
},
/*MQA.RouteIO.route函数的第二个参数定义IO设置*/
{超时:10000},
/*MQA.RouteIO.route函数的最后一个参数是要执行的回调函数
IO请求已完成*/
职能(结果){
/*获取路由请求的结果并将其应用于地图。路由功能区将
在地图上绘制每个点的POI位置*/
routeController.setRouteData(results.route);
/*更改地图以显示数据的最佳拟合*/
map.bestFit();
});                                                                                                                                                        
map.addControl(
新MQA.LargeZoom(),
新的MQA.MapCornerPlacement(MQA.MapCorner.TOP_左,新的MQA.Size(1505,50));
map.enableMouseWheelZoom();
addControl(新的MQA.ViewOptions());
});     
});
} 
试试这个

函数callBackHnadler(响应){
控制台日志(响应);
}
var结果3;
函数main(){
$.ajax({
url:'插入位置',
//数据:{data:data},
键入:“get”,
成功:功能(价值){
结果3=数值;
callBackHnadler(结果3)
}
});

}
tl;dr:你不能-相反,在
success
函数中调用
MQA.EventUtil.observe
我没有那么简单:
success:function(value){MQA.EventUtil.observe(……locations:[value]……);}
它不起作用,我的地图没有加载对不起,我对地图一无所知,我也不知道什么是
MQA
。但这是利用从AJAX接收到的信息的唯一方法。您可能希望编辑问题并附加最新代码。另外,请务必查看JavaScript控制台,并注意可能出现的任何错误,这些错误可能会破坏您的代码。我尝试了此操作,但不起作用控制台上是否有任何错误???没有错误,但我的地图未加载如何将“result3”设为全局并将其传递到位置,如果我在AJAX外部打印结果3,它将显示UNDEFINEDOk,您是否可以尝试将“MQA.EventUtil.observe(窗口,'load',function(){”到“callBackHnadler”函数中的所有内容都放进去