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