angular.js - ionic2 浏览器跨域问题
天蓬老师
天蓬老师 2017-05-15 17:12:33
0
2
806

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(2)
滿天的星座

Saya juga pernah mengalami perangkap ini, dan saya telah menulis keseluruhan proses dalam blog saya: http://www.haoguangbo.com/arc...

Secara ringkasnya, kerana halaman web yang diakses pada mesin sebenar menggunakan protokol file://, bukan http:// atau https:// , jadi tidak akan ada masalah merentas domain Walau bagaimanapun, apabila membangun dan menyahpepijat dalam penyemak imbas, kerana CLI ionik sebenarnya menjalankan pelayan kecil secara tempatan, dan halaman web serta sumber lain dimuatkan melalui http, masalah merentas domain. akan berlaku isu domain. 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 serveMenyelesaikan ini sebenarnya sangat mudah Pelayan bahagian belakang tidak perlu melakukan sebarang pemprosesan Anda hanya perlu menambah medan proxy pada fail konfigurasi ionik (ionic.config.jskod>). Seperti yang ditunjukkan di bawah:
rrreee
Kemudian, apabila anda ingin mengakses https://api.instagram.com/api/xxx, tukar ia untuk mengakses /api/xxx, ionic akan menukar secara automatik Permintaan bermula dengan http://localhost:8000/api dimajukan ke https://api.instagram.com/api, sama seperti shadowsocks.

Akhir sekali, hanya hidangkan ionik dan mulakan semula ionik. 🎜Isu ini, pasukan ionik harus benar-benar menulisnya ke dalam dokumentasi rasmi Ia benar-benar mengacaukan ramai orang. 🎜Semoga ini membantu. 🎜
某草草

Adakah CROS telah ditetapkan dalam sudut?

$httpProvider.defaults.withCredentials = benar;

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan