【发布时间】:2016-10-21 04:43:07
【问题描述】:
感谢这个论坛,我能够通过JSONP和回调函数概念访问跨域rest api。
我的要求是以 HTML 格式显示从我的 Web 服务返回的 JSON 输出。 我正在调用 REST API,我得到了正确的输出(开发者工具),但我没有在代码中的任何变量中得到它。
回调函数中的数据变量没有得到任何值。 如果我分析开发人员工具,则输出将出现在附加的 URI 中 http://xxxx:8000/sap/bc/zrest_demo?sap-client=200&callback=&callback=restapi&_=1466389824755
我相信的原因是,我发现回调函数首先被触发,然后后端的 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>
【问题讨论】:
-
您的回复中是否有一些重音字符,例如“é”或“à”?如果是,则应设置 utf-8 响应参数
-
您是否尝试过在
$.ajax()选项中指定success : restapi? -
感谢您的回复。我发现输出来自一个添加的 URI &callback=restapi&_=1466389824755 添加了原始 URI
标签: javascript jquery json jsonp jquery-callback