javascript - 从 Express 静态 html 文件调用 $.getJSON() 无法获取数据

标签 javascript jquery html node.js

我使用express模块​​作为我的node.js服务器的基础,并设置一个静态中间件如下:

self.app.use(express.static(__dirname));

在根文件夹中,我有一个 html 文件,其中包含远程服务器(与托管 Node.js 应用程序的服务器完全不同)上的 php 脚本的以下 url,该脚本返回 jsonp 数据(已从数据提供者的 xml 数据转换而来):

var strURL = 'http://example.com/jsonp.php?callback=?&url=http://dataprovider.com/1.4/?arg1=xyz;arg2=abc';

然后调用 jquery getJSON 来实际获取 json 数据:

$.getJSON(
        strURL,
        function (jsondata) {
            // do some stuff with the json data
        }
);

但是当我加载从静态 node.js 文件夹提供的 html 文件时,没有返回任何数据...代码永远不会到达 jsondata 函数。

但是,加载放置在“普通”服务器上的完全相同的 html 文件,数据获取得很好,而且如果我直接加载 strURL,数据也会正常返回。

我怀疑这与跨域问题有关,但在我的一生中,我无法使用express让页面在静态node.js服务器中工作。我已经尝试了各种解决方案,但现在我完全感到困惑和沮丧!

欢迎任何帮助。

最佳答案

过去曾遇到过 JSON 的跨域问题,并通过使用 JSONP 解决了这些问题。有一个很好的解释和教程:

http://json-jsonp-tutorial.craic.com/index.html

关于javascript - 从 Express 静态 html 文件调用 $.getJSON() 无法获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26800552/

相关文章:

javascript - AJAX成功后调用Javascript库

jquery - 使用 jQuery 操作和转换表项

javascript - HTML 对齐和 javascript 问题

javascript - 将html选择值传递给JS对象

javascript - 从 module.exports 对象数组中检索值

javascript - window.Object != greasemonkey 脚本对象

javascript - 如何在谷歌图表中添加印度卢比符号

javascript - 离线 webapp - 存储 JavaScript 对象

html - IE9 HTML5 占位符 - 人们如何实现这一点?

javascript - 编译Javascript