小编all*_*ing的帖子

SammyJS从http加载json

我不清楚我应该如何使用sammyjs从外部API加载json.

这段代码效果很好:

this.get('#/contact', function(context) {
       this.load('somefile.json')
      .then(function(items) {
            $.each(items, function(i, item) {
              context.log(item);
            });
        });

    });
Run Code Online (Sandbox Code Playgroud)

然而,通过http加载的相同json失败:

this.get('#/contact', function(context) {
       this.load('http://samedomain/api/getdata')
      .then(function(items) {
            $.each(items, function(i, item) {
              context.log(item);
            });
        });

    });
Run Code Online (Sandbox Code Playgroud)

当通过http加载时,sammy不再将json视为对象,并且似乎将数据解析为文本.

大家都清楚这不是域访问的问题.

 header('Access-Control-Allow-Origin: *');
Run Code Online (Sandbox Code Playgroud)

我也不相信这是我的json格式的问题,因为它作为本地文件加载时似乎工作正常.

我的休息api也在使用:

"Content-Type: application/json;
Run Code Online (Sandbox Code Playgroud)

更新: 我把这个用在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);
                }); …
Run Code Online (Sandbox Code Playgroud)

json sammy.js

3
推荐指数
1
解决办法
1425
查看次数

标签 统计

json ×1

sammy.js ×1