Angular JS- Dreamfactory - 无法连接:403 Forbidden错误

时间:2014-10-21 08:23:25

标签: angularjs amazon-ec2

我使用的是Amazon Cloud EC2 DSP 1.8.0。

按照他们关于AngularJS的文档,我就是这样宣布我的常量: -

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services','**ngDreamFactory**'])
      .constant('DSP_URL', 'http://***-**-**-***-**.ap-southeast-1.compute.amazonaws.com/')
      .constant('DSP_API_KEY', 'sql')

上面的URL是ec2实例地址。

这是我在应用启动时在控制台中遇到的错误:

- GET http://***-**-**-***-**.ap-southeast-1.compute.amazonaws.com/rest/api_docs 403 (Forbidden) 

undefined : undefined http://***-**-**-***-**.ap-southeast-1.compute.amazonaws.com/rest/api_docs

上面的错误来了,即使我还没有对DSP发出任何调用,所以我认为它必须是进行此调用的框架。我看到了这个" / rest / api_docs"在作为Angular SDK的一部分添加的JS文件中添加。

只是为了确认我的DSP设置正确并且我的网址是正确的,这是我在浏览器中粘贴时得到的结果:

- http://***-**-**-***-**.ap-southeast-1.compute.amazonaws.com/rest/api_docs?app_name=sql

{
  "swaggerVersion":"1.2",
  "apiVersion":"1.0",
  "authorizations":{ 
      "apiKey": {
          "type":"apiKey",
          "passAs":"header"
       }
   },
"info": {
    "title":"DreamFactory Live API Documentation",
    "description":"",
    "contact":"support@dreamfactory.com",
    "license":"Apache 2.0",
    "licenseUrl":"http://www.apache.org/licenses/LICENSE-2.0.html"},
    "events":[ 
       "swagger.cache_cleared",
       "swagger.cache_rebuilt"
    ],
    "apis":[
       {
          "path":"/user",
          "description":"User session and profile"
       },
       {
          "path":"/system",
          "description":"System configuration"
       },
       {
          "path":"/db",
          "description":"Local database access"
       },
       {
          "path":"/email",
          "description":"Email utility access"
       },
       {
          "path":"/files",
          "description":"Local file storage access"
       },
       {
          "path":"/sql",
          "description":"Amazon RDS Sql"
       }
   ]
}

因此,我认为设置正确。

在DSP端: - 1)我已经定义了一个角色,因为"亚马逊RDS"并且已经提供了“sql'”的服务访问权限。这个角色。此外,尝试给予系统访问权限。还是行不通。 2)在Config中的CORS访问中,我在主机中添加了*并选择了所有HTTP动词并启用了相同的功能。 3)检查"允许访客用户"并选择角色"亚马逊RDS"对于访客用户。

所以,当我稍后在我的代码中进行此调用时: - DreamFactory.api.db.getRecords 我收到错误:

- TypeError: Cannot read property 'getRecords' of undefined

因为安装服务本身没有正确实例化。 在这方面的任何帮助都会有所帮助。

1 个答案:

答案 0 :(得分:0)

403表示您无权访问该应用。如果您尚未创建应用程序或您的角色无权访问该应用程序,则可能会发生这种情况。有关详细信息,请查看此链接。

http://community.dreamfactory.com/t/unable-to-access-dsp-from-angularjs-mobile-app/478/14