回调参数不起作用 JSONP javascript



我正在尝试使用 JSON 跨域加载数据表单。 在脚本中传递的回调参数不会在控制台中打印任何数据。

我将从另一台服务器加载week-7.js,但我在本地尝试它不起作用。我无法更改服务器端部分的任何代码,我无权更改它

我把这个<script>放在HTML中

<button onclick="clickButton()">click me</button>
<script>
function renderTable(data){
console.log(data)
}
function clickButton() {
var s = document.createElement("script");
s.type = "text/javascript"
s.src = "week-7.js?callback=renderTable";
document.body.appendChild(s);
}
</script>

这是我的第7周.js

const data = {
"noWeek": 1,
"fstWeek": 1,
"week": 1,
"end": 1591459131848,
"profiles": {
"test1": {
"id": "test1",
"type": "3",
"name": "test test",
"picture": {
"uri": "/flag.png"
},
"country": "IN",
"ed": 1,
"gs": 100,
"ts": 13.0,
"in": 31,
"px": 34
}
},
"leaders": [
"test1"
]
}

有什么问题吗?有什么建议吗?

为了帮助您入门,您可以:

1 - 通过删除"="并以"data({"开头并在末尾加上右括号"(",将本地数据文件更改为jsnop。

2 - 将此添加到您的 HTML 中:

<h3>Output</h3>
<div id='x'></div>

3 - 将回调函数更改为:

function data(y){
document.getElementById('x').innerHTML=JSON.stringify(y, null, 2)
}

如果您手动将回调函数名称(数据(添加到数据文件中,则无需在调用脚本中输入回调名称 - 它将在本地被忽略,并且可能被服务器忽略。但是,如果您要从雅虎财经(例如雅虎财经(获取第三方远程数据,则可能需要在URL中输入回调名称,并且可能使用诸如 https://json2jsonp.com

该过程的工作原理是将数据文件更改为对回调函数的函数调用。

一句警告。如果在回调函数之外添加更多相关脚本,则操作可能会停止工作。首先让它在函数中工作。

祝你好运。

最新更新