首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回调时出现stackmob错误

回调时出现stackmob错误
EN

Stack Overflow用户
提问于 2013-02-13 01:28:21
回答 2查看 358关注 0票数 0

我使用stackmob已经有几天了,它仍然是新的,网上没有太多的信息。我遇到了这个问题:我不会得到我的stackmobe "db“中所有商店名称的列表,这个方案称为store,下面是我使用的代码:

代码语言:javascript
复制
var Store = StackMob.Model.extend({
    schemaName: 'store'
});

 var stores = new Store();
stores.fetch({
    success: function(collection) {
        //after we've gotten all the Todo items from StackMob, let's see what we have!
        console.debug(collection.toJSON());
        alert(collection.toJSON());
    },
    error: function(collection, response){
        alert(collection.toJSON());
    }
}); 

我在chrome日志中看到以下错误:

代码语言:javascript
复制
OPTIONS http://api.stackmob.com/store 400 (Bad Request) 
XMLHttpRequest cannot load http://api.stackmob.com/store. Origin http://127.0.0.1:4567 is not allowed by Access-Control-Allow-Origin.

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-14 03:56:38

我能问一下你在什么环境下运行吗(chrome,firefix,safari,opera,phonegap)?默认情况下,JS SDK被配置为对相对路径进行AJAX调用。例如"/store“它看起来像是被配置成直接点击"api.stackmob.com”,这只在以下情况下才会发生:

JS SDK检测到您正在使用PhoneGap

  • you've指定了通过初始化直接访问api.stackmob.com的

StackMob.init({ ...apiURL:'http://api.stackmob.com/‘})

我问自己的第一个问题是,当你在Python服务器上运行时,它是如何调用api.stackmob.com的:(我假设是这样的,因为我在你的原始帖子中看到了127.0.0.1:4567 )

Dennis Rongo在上面指出的另一件事是你的Python版本。我们测试了2.7,但听起来他注意到了3.3的问题。但是从127.0.0.1:4567命中api.stackmob.com仍然是意想不到的。你有apiURL吗:'...‘在你的init中设置?如果是这样的话,我会尝试删除它。

设置apiURL将使SDK直接调用api.stackmob.com (api.stackmob.com/store),浏览器的行为将像任何常规AJAX调用一样,如果它要跨域,则会阻止它,并给出您看到的错误。

好吧,让我知道!我们绝对想让你上路!

埃里克

另外,我认为你也在尝试获得不止一家商店。StackMob.Model只代表一个商店。你想要StackMob.Collection。

例如:

代码语言:javascript
复制
var Store = StackMob.Model.extend({ schemaName: 'store' });
var Stores = StackMob.Collection.extend({ model: Store });

var stores = new Stores();
stores.fetch({
  success: function(results) {
    console.log(results.toJSON()); //should print out array of JSON objects representing your store items.
  }
});

更多信息:http://developer.stackmob.com/tutorials/js/Query-an-Object

票数 3
EN

Stack Overflow用户

发布于 2013-02-13 08:23:40

我以前从未使用过StackMob,但我决定试一试,并能够在本地(localhosthttp://127.0.0.1/)使用它。

这里有一些你可以看的东西。

  • 转到您的StackMob Dashboard并检查您的Schema是否正确设置了权限级别。如果您的任何操作没有设置为Open,请在进行Fetch()调用之前检查您是否正确地进行了身份验证。
  • 您还需要安装Python 2.7+ (我建议坚持使用2.7,因为3.3会破坏他们的Python脚本)。Installation instructions。Python可以从here下载。

安装说明包含stackmobserver.py,您需要将其放在项目的根目录下。导航到项目的根目录,并使用要初始化的Command执行Python脚本(仅限开发目的)。

python stackmobserver.py

  • 检查您的initauthentication脚本。

/**初始化StackMob */ StackMob.init({...});/**使用用户架构执行身份验证*/ var StackMob.User=新用户名({用户名:'yourUser',密码:'yourPassword‘});user.login(false,{ success: function (StackMob.User){ /**为通过身份验证的用户执行模型获取。*/ },错误: function (模型,响应){ console.debug( response);} });

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14838265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档