gpt4 book ai didi

json - SammyJS 从 http 加载 json

转载 作者:行者123 更新时间:2023-12-05 01:20:27 27 4
gpt4 key购买 nike

我不清楚我应该如何使用 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);

最佳答案

除了 VoDurden 所说的,您还可以传递显式设置 dataType 的加载选项。如果您查看 Sammy Load function on Github ,你可以看到它只是一个ajax调用的包装器。

试试这样的:

loadOptions =   {
type: 'get',
dataType: 'json',
data: {query: variable},
};

context.load("http://path.com/api/", loadOptions);

关于json - SammyJS 从 http 加载 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11689851/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com