RESTful 来自 Eve 的 HTTP 响应在 jQuery.getJSON 中显示为空
RESTful HTTP Response from Eve appears empty in jQuery.getJSON
我正在尝试使用来自 python-eve.org 的教程示例使用 eve 查询 MongoDB。我的 jQuery
$.getJSON('http://127.0.0.1:5000/people/', function(data, status){
});
alert(typeof(status) + " length of " + status.length);
只给我 'status' 作为长度为 0 的字符串。当试图在函数内访问 'data' 时,我没有得到任何响应。我用
检查了语法
$.getJSON('https://graph.facebook.com/zombies', function(data, status){
alert(data.description);
});
效果很好。所以接下来我观察了请求是如何处理的,并使用了 Chrome 扩展 'Advanced REST Client Application'。这两个请求(到“127.0.0.1:5000/people/”和到 facebook)都给我响应 HTTP 代码 200 和请求的数据。
在终端 window 中,eve 作为进程运行请求(在 jQuery 的情况下并通过 Chrome 扩展)控制台记录
127.0.0.1 - - [29/Mar/2015 14:47:49] "GET /people/ HTTP/1.1" 200 -
这表明请求已得到妥善处理。这给我留下了一个问题:为什么我在尝试使用 jQuery 时无法访问数据对象?尝试将 {"Accept":"application/json"} 添加到 jQuery 没有帮助。
如有任何建议,我们将不胜感激!
舒马克斯
问题是同源策略 (SOM) 引起的冲突。 Eve 允许定义 CORS,从而允许查询。 (请参阅文档)。
我正在尝试使用来自 python-eve.org 的教程示例使用 eve 查询 MongoDB。我的 jQuery
$.getJSON('http://127.0.0.1:5000/people/', function(data, status){
});
alert(typeof(status) + " length of " + status.length);
只给我 'status' 作为长度为 0 的字符串。当试图在函数内访问 'data' 时,我没有得到任何响应。我用
检查了语法$.getJSON('https://graph.facebook.com/zombies', function(data, status){
alert(data.description);
});
效果很好。所以接下来我观察了请求是如何处理的,并使用了 Chrome 扩展 'Advanced REST Client Application'。这两个请求(到“127.0.0.1:5000/people/”和到 facebook)都给我响应 HTTP 代码 200 和请求的数据。 在终端 window 中,eve 作为进程运行请求(在 jQuery 的情况下并通过 Chrome 扩展)控制台记录
127.0.0.1 - - [29/Mar/2015 14:47:49] "GET /people/ HTTP/1.1" 200 -
这表明请求已得到妥善处理。这给我留下了一个问题:为什么我在尝试使用 jQuery 时无法访问数据对象?尝试将 {"Accept":"application/json"} 添加到 jQuery 没有帮助。
如有任何建议,我们将不胜感激! 舒马克斯
问题是同源策略 (SOM) 引起的冲突。 Eve 允许定义 CORS,从而允许查询。 (请参阅文档)。