Jsonp回调函数不起作用?我这样做错了吗?

发布于 2024-11-19 21:19:51 字数 454 浏览 6 评论 0原文

所以我对此完全陌生,但 jsonp 看起来很简单,我只是想使用 dashcode 制作一个网络应用程序。我需要将 twitter json 数据放在我的网络应用程序的页面上。这就是我尝试过的。

我将此代码放入 index.html

<script src="http://twitter.com/users/USERNAME.json?callback=handleResponse"/>

然后创建了一个 javascript 文件

function handleResponse(responseJson){
alert(responseJson.status.text);
}

当我将 javascript 文件作为数据源时,出现错误,指出它不是有效的 JSON 或 XML。正如我所说,我对此很陌生,所以我可能做得完全错误。

So I'm totally new to this, but jsonp seemed so simple, I'm just trying to make a web app using dashcode. I need to put twitter json data on a page of my web app. This is what I tried.

I put this code in index.html

<script src="http://twitter.com/users/USERNAME.json?callback=handleResponse"/>

Then I created a javascript file

function handleResponse(responseJson){
alert(responseJson.status.text);
}

When I put the javascript file as the datasource I get an error saying it is not valid JSON or XML. As I said I am new to this, so I might be doing it completely wrong.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦忆晨望 2024-11-26 21:19:51

您的代码至少在 Chrome 中可以工作,只需进行一点小小的调整 - 请参阅 http://jsfiddle.net/nrabinowitz /jJTQn/1/

<script type="text/javascript">
function handleResponse(responseJson){
    alert(responseJson.status.text);
}
</script>
<script type="text/javascript"
 src="http://twitter.com/users/Pogue.json?callback=handleResponse"></script>

这个小调整是正确关闭 script 标签(script 标签不能自动关闭,因为我显然也是懒惰 谷歌)。将 type="text/javascript" 也扔在那里也没什么坏处。

You code works, at least in Chrome, with one small tweak - see http://jsfiddle.net/nrabinowitz/jJTQn/1/

<script type="text/javascript">
function handleResponse(responseJson){
    alert(responseJson.status.text);
}
</script>
<script type="text/javascript"
 src="http://twitter.com/users/Pogue.json?callback=handleResponse"></script>

The small tweak is closing the script tag properly (script tags can't be self-closing, for reasons I'm apparently too lazy to Google). Wouldn't hurt to throw type="text/javascript" in there too.

数理化全能战士 2024-11-26 21:19:51

您需要确保在外部 jsonp 调用之前定义了handleResponse 函数。

(而且你的脚本标签无效)

<script>
function handleResponse(responseJson){
  alert(responseJson.status.text);
}
</script>
<script src="http://twitter.com/users/USERNAME.json?callback=handleResponse"></script>

You need to make sure the handleResponse function is defined before the external jsonp call.

(Also your script tag is invalid)

<script>
function handleResponse(responseJson){
  alert(responseJson.status.text);
}
</script>
<script src="http://twitter.com/users/USERNAME.json?callback=handleResponse"></script>
知你几分 2024-11-26 21:19:51

单击左侧源窗格中的“小部件属性”。在“网络/磁盘访问”下,确保选中“允许网络访问”。如果不进行此项检查,您的小部件将无法发出任何 AJAX 请求。

Click on “Widget Attributes” in the left-hand source pane. Under “Network / Disk Access”, make sure that “Allow Network Access” is checked. Without this checked your widget won’t be able to make any AJAX requests.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文