ionic2 浏览器跨域问题

发布于 2022-09-04 14:29:43 字数 510 浏览 18 评论 0

ionic2项目从Localhost向远程服务器提交Post请求,在真机中可以返回正确的数据,但是在Chrome中遇到了跨域的问题,查了些资料,配置了一下服务端的Access-Control-Allow,但是没效果,谁能看一下吗,下面是报错和代码。
图片描述

图片描述

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

素手挽清风 2022-09-11 14:29:43

这个坑我也遇到过,整个过程我都写在我的博客里了:http://www.haoguangbo.com/arc...

简单来说,因为真机里网页的访问走的是file://协议,而非http://https://,因此不会出现跨域问题,但是浏览器里开发调试的时候,由于实际上是ionic的CLI在本地跑了一个小服务器,网页等资源都是通过http加载的,就会出现跨域问题。
解决这个其实很简单,后端服务器不需要做任何处理,只需要在ionic的配置文件(ionic.config.js)里加上proxy这个字段,如下所示:

{
  "name": "appname",
  "email": "",
  "app_id": "",
  "proxies": [
    {
      "path": "/api",
      "proxyUrl": "https://api.instagram.com/api"
    }
  ]
}

然后,在想访问https://api.instagram.com/api/xxx的时候,就改成访问/api/xxx,ionic会自动把以http://localhost:8000/api开头的请求都转发到https://api.instagram.com/api,就像shadowsocks一样。
最后重新ionic serve重启一下ionic就可以了。
这个问题,ionic团队真应该写到官方文档里,实在是坑了太多的人了。
希望能帮到题主。

音盲 2022-09-11 14:29:43

angular设置了CROS没有?

$httpProvider.defaults.withCredentials = true;

知你几分 2022-09-11 14:29:43

我来写一个简单的方法,不需要写任何的代码,改变Chrome的设置来禁用同源策略。
Mac上可以在终端运行,yourUserName替换成你的账户名:

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security  --user-data-dir=/Users/yourUserName/MyChromeDevUserData/

Windows可以参考:http://www.cnblogs.com/zouron...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文