Javascript JSONP请求返回正确的值,但未显示在回调函数中

Javascript JSONP请求返回正确的值,但未显示在回调函数中,javascript,jquery,json,jsonp,jquery-callback,Javascript,Jquery,Json,Jsonp,Jquery Callback,感谢这个论坛,我能够通过JSONP和回调函数概念访问跨域RESTAPI 我的要求是以HTML显示从Web服务返回的JSON输出。 我正在调用RESTAPI并获得正确的输出(开发人员工具),但在代码中的任何变量中都没有得到正确的输出 回调函数中的数据变量未获取任何值。 如果我分析开发人员工具,输出将以附加URI的形式出现 我相信的原因是,我发现回调函数首先被触发,然后后端的web服务被调用。如何先调用web服务,然后执行回调方法 以下是我的代码: <body> <

感谢这个论坛,我能够通过JSONP和回调函数概念访问跨域RESTAPI

我的要求是以HTML显示从Web服务返回的JSON输出。 我正在调用RESTAPI并获得正确的输出(开发人员工具),但在代码中的任何变量中都没有得到正确的输出

回调函数中的数据变量未获取任何值。 如果我分析开发人员工具,输出将以附加URI的形式出现

我相信的原因是,我发现回调函数首先被触发,然后后端的web服务被调用。如何先调用web服务,然后执行回调方法

以下是我的代码:

 <body>    

 <div>  

 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

 <button onclick="callSAPRestService('OK')">Click me</button>

 <script>

        function callSAPRestService(value1) 

        {                                                    
                 $.ajax({            

                url: "http://xxxx:8000/sap/bc/zrest_demo?sap-client=200&callback=",
                dataType: 'jsonp',
                jsonpCallback: 'restapi',
                jsonp: 'callback',

                  });

        }

        function restapi(data) {
            alert(data);
        }
 </script>
 </div>
</body>

点击我
函数调用saprestservice(值1)
{                                                    
$.ajax({
url:“http://xxxx:8000/sap/bc/zrest_demo?sap-client=200&callback=“,
数据类型:“jsonp”,
jsonpCallback:“restapi”,
jsonp:“回调”,
});
}
函数(数据){
警报(数据);
}

为什么不在呼叫成功时返回数据呢?例如:

callRestService: function() {
    var result = null;
    $.ajax({
        url: 'someurl',
        type: 'get',
        dataType: 'jsonp',
        success: function(data) {
            result = data;
        }
    });
   return result;
}

您可能需要有一个单独的函数对其进行迭代

$.ajax({
   type: 'GET',
   url: 'http://xxxx:8000/sap/bc/zrest_demo?sap-client=200&callback=',
   data: {
      query: value,
      cb: 'callback'
    },
   dataType: 'jsonp',
});

在本例中,
cb:'callback'
是函数名。

您的响应中是否有一些重音字符,如“é”或“a”??如果是,那么您应该设置utf-8响应参数您是否尝试在
$.ajax()
选项中指定
success:restapi
?感谢您的回复。我发现输出是在一个添加的URI中出现的&callback=restapi&\=1466389824755与原始URI一起添加。results变量返回Null,我仍然在一个扩展URI中获取数据:http:/XXXX:8000/sap/bc/zrest \-demo?sap client=200&callback=jQuery16202293787001975638 \-u 1466390509710&\=1466390513676