【问题标题】:Ionic App gives an error 500 when using proxy使用代理时,Ionic App 出现错误 500
【发布时间】:2015-09-17 21:43:54
【问题描述】:

我有一个嵌入式设备,我想通过 http 从我的应用程序连接到该设备。因此我必须使用离子代理。所以在我的项目文件中我有:

 {
  "name": "MyApp",
  "app_id": "",
  "proxies": [
    {
      "path": "/api",
      "proxyUrl": "http://192.168.0.100"
    }
  ]
}

但每当我的应用程序(在 chrome 中运行)尝试从我的嵌入式服务器获取一些 JSON 数据时,我会收到错误 500,即使当我从浏览器访问 API 时它返回正确的 JSON。

这是我正在使用的服务:

angular.module('starter.services', ['ngResource'])
.factory('device_status', function ($resource) {
    return $resource('/api/device_status');
});

当我从浏览器试用 API 时,我正在访问这个 URL:

http://192.168.0.100/device_status

得到:

{"mode":"STANDBY","niveau":3,"hours":1,"minutes":30,"nightmode":1}

另外,我的本地主机上有一个内部服务器,它返回完全相同的 JSON,如果我对此进行测试,它工作正常。

【问题讨论】:

    标签: javascript json proxy ionic-framework ionic


    【解决方案1】:

    您正在做的另一种方法是设置 CORS 代理。

    1. 在终端输入以下命令安装代理:

    npm install -g corsproxy
    

    2. 启动代理:

    corsproxy
    

    3. 启动代理后,您应该能够看到代理在哪里运行(检查终端中的输出)。通常它看起来像

    http://localhost:9292

    4. 那么您应该能够提出如下请求:

    http://yourproxy/yourapiendpoint

    【讨论】:

    • 我试过了,现在我得到:{"statusCode":502,"error":"Bad Gateway","message":"Parse Error"} ... 代理正在运行:HPMB140:1337 我在我的浏览器中写:HPMB140:1337/192.168.0.242/version - 这不是写的吗?如果我在浏览器中写下:192.168.0.242/version,一切都可以。
    • 可以是我的服务器返回的格式吗?它只返回原始 JSON,没有任何标题或任何东西?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    相关资源
    最近更新 更多