我不清楚我应该如何使用 sammyjs 从外部 API 加载 json。
这段代码很好用:
this.get('#/contact', function(context) {
this.load('somefile.json')
.then(function(items) {
$.each(items, function(i, item) {
context.log(item);
});
});
});
但是,通过 http 加载的相同 json 失败:
this.get('#/contact', function(context) {
this.load('http://samedomain/api/getdata')
.then(function(items) {
$.each(items, function(i, item) {
context.log(item);
});
});
});
通过 http 加载时,sammy 不再将 json 视为对象,并且似乎将数据解析为文本。
只是让每个人都清楚这不是域访问的问题。
header('Access-Control-Allow-Origin: *');
我也不认为这是我的 json 格式的问题,因为它在作为本地文件加载时似乎工作正常。
我的rest api也在使用:
"Content-Type: application/json;
更新: 我把它放在 wordpress 中使用,并在此处列出它,以防它帮助其他人
(function($) {
var app = $.sammy('#main', function() {
this.use('Template');
this.helpers({
loadJSON: function(location, options, callback) {
options = $.extend(options, {json: true});
return new Sammy.RenderContext(this).load(location, options, callback);
}
});
this.get('#/', function(context) {
this.loadJSON('http://localhost/wp-somesite/wp-admin/admin-ajax.php?action=get_all_cases')
.then(function(items) {
$.each(items, function(i, item) {
context.log(item);
});
});
});
});
$(function() {
app.run('#/');
});
})(jQuery);