IONIC 3 CORS在设备中打开并使用api时出现问题

时间:2018-12-14 13:43:15

标签: php typescript api ionic-framework ionic3

我是IONIC的初学者,我将细长的api与ionic 3结合使用。出现此错误:

  

“无法加载http://sargam.digifrizz.com/api/v1/empLogin:对预检请求的响应未通过访问控制检查:所请求的资源上没有'Access-Control-Allow-Origin'标头。来源'http://localhost:8100因此,不允许访问。”

我也在使用代理URL。

 {
      "name": "sargam",
      "integrations": {
        "cordova": {}
      },
      "type": "ionic-angular",
       "proxies": [
        {
          "path": "/v1/empLogin",
          "proxyUrl": "http://sargam.digifrizz.com/api/v1/empLogin"
        }
      ]
    }

我正在使用以下代码:

  return new Promise((resolve, reject) => {
                let headers = new Headers();

                headers.append('Access-Control-Allow-Origin' , '*');
                        headers.append('Access-Control-Allow-Headers','Origin, Content-Type, X-Auth-Token, authorization, X-Requested-With');           
                headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');
                headers.append('Access-Control-Allow-Credentials', 'true');
                headers.append('Accept','application/json');
                        headers.append('Content-Type', 'application/json');


            this.http.post(apiUrl+'empLogin', JSON.stringify(credentials), {headers: headers})
              .subscribe(res => {
                resolve(res.json());

              }, (err) => {
                reject(err);
              });
            });

请帮助我解决这个问题

谢谢 斯尼格达

3 个答案:

答案 0 :(得分:1)

CORS访问控制必须在服务器端实现。您应该以200 OK响应OPTIONS请求,并使用正确的配置包含这些标头:Access-Control-Allow-OriginAccess-Control-Allow-HeadersAccess-Control-Allow-Methods。您应该阅读CORS文档,了解如何在后端实现它。

答案 1 :(得分:0)

cors plugin添加到您的Chrome浏览器中,它现在可以正常使用。 但是您在服务器端有处理错误。

答案 2 :(得分:0)

我正在使用“ Access-Control-Allow-Origin,Access-Control-Allow-Header和Access-Control-Allow-Methods”后端,但出现相同的错误

后端响应是

access-control-allow-headers→X-Requested-With,内容类型,接受,原始,授权 访问控制允许方法→GET,PUT,POST,DELETE,OPTIONS 访问控制允许来源→* 缓存控制→不存储,不缓存,必须重新验证 连接→关闭 内容长度→412 内容类型→application / json; charset = utf-8 日期→2018年12月21日星期五08:06:22 GMT 过期→格林尼治标准时间1981年11月19日星期四08:52:00 实用→不缓存 服务器→Apache / 2.2.15 x-powered by→PHP / 7.0.27