Domain silang, masalah umum yang ditemui dalam pengembangan front-end. AngularJS mengimplementasikan metode domain lintas yang mirip dengan AJAX dan menggunakan mekanisme CORS.
Berikut ini menjelaskan penggunaan $ http untuk mengimplementasikan data permintaan lintas domain di AngularJS.
AngularJS XMLHTTPREQUEST: $ http digunakan untuk membaca data dari server jarak jauh
$ http.post (url, data, [config]). Success (function () {...}); $ http.get (url, [config]). Success (function () {...}); $ http.get (url, [config]). Success (function () {...});1. $ Http.jsonp [Implementasi domain silang]
1. Tentukan nama fungsi callback dan panggilan balik. Ketika nama fungsi adalah JSON_CALLBACK , fungsi panggilan balik keberhasilan akan dipanggil. JSON_CALLBACK harus dalam huruf besar.
2. Tentukan fungsi panggilan balik lainnya, tetapi harus berupa fungsi global yang ditentukan di bawah jendela. callback harus ditambahkan ke URL.
2. $ Http.get [implementasi domain silang]
1. Atur server untuk memungkinkan akses di bawah nama domain lainnya
response.setHeader ("Access-Control-Allow-Origin", "*"); // Izinkan semua nama domain untuk mengakses respons.setHeader ("access-control-allow-origin", "http://www.123.com"); // Izinkan www.123.com untuk mengakses 2. Sisi AngularJS menggunakan $http.get()
3. $ Http.post [Implementasi domain silang]
1. Atur pengaturan sisi server untuk memungkinkan akses di bawah nama domain lain, serta jenis respons dan pengaturan header respons
response.setheader ("akses-kontrol-awal-origin", "*"); response.setHeader ("Access-Control-Methods Allow-Methods", "Post"); response.setHeader ("Access-Control-Wall-Headers", "X-Requested-With, Content-Type"); 2. Sisi AngularJS menggunakan $http.post() dan menetapkan informasi header permintaan secara bersamaan
$ http.post ('http: //localhost/ajax/getallindUstryCategoty.pt', {languagecolumn: 'name_eu'}, {'tipe konten': 'aplikasi/x-www-form-ublencoded'}) .success (function (data) {sciope.4. Metode Implementasi
Metode Cross-Domain Satu [ JSONP ]:
Metode 1:
$ http.jsonp ("http: //localhost/sitsettings/getbadgeInfo.pt? jsonp = json_callback & siteid = 137bd406") .success (fungsi (data) {...}); // nama panggilan balik harus menjadi string json _call. Metode 2 [Nilai pengembalian, Anda perlu menggunakan metode panggilan balik yang sesuai untuk menerimanya, tetapi bagaimana cara memasukkannya ke dalam $scope ?]:
$ http.jsonp ("http: //localhost/sitesettings/getBadgeInfo.pt? jsonp = badgeabc & siteid = 137bd406"); function badgeabc (data) {...} Public String Execute () Throws Exception {string result = gagal; response.setheader ("", ""); SiteHandlerAction SiteHandlerAction = (SiteHandlerAction) beansfactory.getBean (SiteHandlerAction.class); LencanaHandlerAction lencanaHandlerAction = (lencanaHandleraction) beansfactory.getbean (ludghandleraction.class); if ("". Equals (SiteId) || siteId == null || stringutils.isblank ("jsonp")) {hasil = gagal; } else {situs situs = SiteHandLerAction.find (SiteId); Userbadestatus userbadestatus = ludghandleraction.getUserbadestatus (site.getId ()); if (userbadestatus! = null) {result = "{/"t/":":"+UserbAdestatus.getstyle()+",/"l/":"+Userbadestatus.getsuspend_location()+",/"s/":"+Site.getid()"} "}; Jsonobject jsonobj = jsonobject.fromObject (hasil); String json = jsonobj.toString (); hasil = jsonp + "(" + json + ")"; }} Printwriter write = response.getWriter (); write.print (hasil); write.flush (); write.close (); Return None;} Metode Cross-Domain Dua [ $http.get() ]:
Fungsi getAdustryController ($ scope, $ http) {$ http.get ('http: //localhost/ajax/getallindUstrycategoty.pt? languagecolumn = name_eu') .success (function (data) {$ scope.industries = ustria =}} {ow scope. Metode Cross-Domain Tiga [ $http.post() ]:
Fungsi getAdustryController ($ scope, $ http) {$ http.post ('http: //localhost/ajax/getallindustrycategoty.pt', {languagecolumn: 'name_eu'}, {'tipe konten': 'x-www) {name-for-form' {'{' {'name-form': $ scope.industries = data;});} // Sisi Java mendukung domain silang meminta string public execute () {response.setHeader ("Access-Control-Allow-Origin", "*"); // URL mana yang diizinkan untuk diminta lintas domain ke respons.setHeader ("Access-Control-Allow-Methods", "Post"); // Metode permintaan yang diizinkan umumnya mendapatkan, memposting, menempatkan, menghapus, opsi respons.setHeader ("akses-control-wallow-headers", "X-requested-with, tipe konten"); // permintaan header apa yang diizinkan untuk diizinkanBisa silang domain
SiteHandlerAction SiteHandler = (SiteHandlerAction) beansfactory.getbean (SiteHandlerAction.class); Daftar Daftar = SitusHandler.GetAllIndUstratTategory (); // Semua Koleksi Klasifikasi JsonArray JsonArray = JsonArray.FromObject (Daftar); // Konversi daftar ke jsonstring json = jsonarray.toString (); // Konversi ke string JSON coba {printwriter write = response.getWriter (); write.print (json); write.close ();} catch (ioException e) {e.printstacktrace ();} return none;}Meringkaskan
Di atas adalah semua tentang artikel ini. Saya berharap konten artikel ini akan membantu semua orang untuk belajar menggunakan AngularJS.