Cross-Domain, общая проблема, возникающая в фронт-энде-разработке. Angularjs реализует метод междомена, похожий на AJAX и использует механизм CORS.
В следующем объясняется использование $ http для реализации данных о перекрестном домене запросов в AngularJS.
Angularjs xmlhttprequest: $ http используется для чтения данных с удаленного сервера
$ http.post (url, data, [config]). success (function () {...}); $ http.get (url, [config]). success (function () {...}); $ http.get (url, [config]).1. $ http.jsonp [реализация междоменного]]
1. Укажите имя функции callback и обратного вызова. Когда имя функции будет JSON_CALLBACK , будет вызвана функция обратного вызова успеха. JSON_CALLBACK должен быть в прописном регистрации.
2. Укажите другие функции обратного вызова, но должны быть глобальные функции, определенные в окне. callback должен быть добавлен в URL.
2. $ http.get [реализация междоменного]]
1. Установите сервер, чтобы разрешить доступ под другими доменными именами
response.setheader ("Access-Control-Oright-Origin", "*"); // разрешить всем доменным именам доступа к response.setheader ("Access-control-llow- Origin", "http://www.123.com"); // разрешить www.123.com доступ к 2. Angularjs Side использует $http.get()
3. $ http.post [реализация междоменного]]
1. Установите настройки на стороне сервера, чтобы разрешить доступ под другими доменными именами, а также тип ответа и настройки заголовка ответа
response.setheader ("access-control-allow-Origin", "*"); response.setheader ("Access-Control-Allow-Methods", "post"); response.setheader («Контроль Access-Control-Hallowers», «x-requested-with-тип»); 2. Angularjs Side использует $http.post() и одновременно устанавливает информацию о заголовке запроса
$ http.post ('http: //localhost/ajax/getallindustrycategoty.pt', {languagecolumn: 'name_eu'}, {'content-type': 'application/x-www-form-urlencoded'}) .success (function) {$ scope.4. Метод реализации
Метод перекрестного домана один [ JSONP ]:
Метод 1:
$ http.jsonp ("http: //localhost/sitesettings/getbadgeinfo.pt? jsonp = json_callback & siteid = 137bd406") .success (function (data) {...}); // Имя обратного вызовов должен быть строка json_callback. Метод 2 [возвращаемое значение, вам необходимо использовать соответствующий метод обратного вызовов для его получения, но как поместить его в $scope ?]:
$ http.jsonp ("http: //localhost/sitesettings/getbadgeinfo.pt? jsonp = badgeabc & siteid = 137bd406"); function badgeabc (data) {...} public String execute () Throhs exception {String result = неудачный; response.setheader ("" "," "); Sitehandleraction sitehandleraction = (sitehandleraction) beansfactory.getbean (sitehandleraction.class); BadgeHandleraction BadgeHandlerAction = (BadgeHandlerAction) BeansFactory.getBean (BadgeHandlerAction.Class); if ("". Equals (siteId) || siteId == null || stringUtils.isblank ("jsonp")) {result = fail; } else {site site = sitehandleraction.find (siteid); Userbadgestatus userbadgestatus = badgehandleraction.getuserbadgestatus (site.getid ()); if (userbadgestatus! = null) {result = "{/"t/""+userbadgestatus.getstyle()+",/"l/"! JsonObject jsonObj = jsonObject.fromObject (результат); String json = jsonobj.toString (); result = jsonp + "(" + json + ")"; }} PrintWriter write = response.getWriter (); write.print (результат); write.flush (); write.close (); вернуть нет;} Метод перекрестного домена два [ $http.get() ]:
Function getAdystryController ($ scope, $ http) {$ http.get ('http: //localhost/ajax/getallindustrycategoty.pt? languageColumn = name_eu') .success (function (data) {$ scope.industries = data;}); Метод перекрестного домена три [ $http.post() ]:
function getAdystryController ($ scope, $ http) { $ http.post ('http: //localhost/ajax/getallindustrycategoty.pt', {languageColumn: 'name_eu'}, {'content-type': 'application/x-www-form-urlencoded'}) Java Side поддерживает перекрестные запросы public String execute () {response.setheader ("Access-Control-Owally-Origin", "*"); // какие URL-адреса разрешено запросить по доменам в ответ. // разрешенные методы запроса, как правило, получают, публикуйте, поместите, удаляйте, Options Recason.setheader («Упражнение по контролю доступа», «X-requested-with, контент-тип»); // Какие заголовки запросов разрешеныМожет кросс-домен
Sitehandleraction sitehandler = (sitehandleraction) beansfactory.getbean (sitehandleraction.class); Список = siteHandler.getallindustrycategory (); // Все коллекции классификации jsonarray jsonarray = jsonarray.fromobject (list); // конвертировать список в jsonstring json = jsonarray.tostring (); // преобразовать в json string try {printwriter write = response.getWriter (); write.print (json); write.close ();} catch (ioexception e) {e.printstacktrace ();} вернуть нет;}Суммировать
Выше всего об этой статье. Я надеюсь, что содержание этой статьи будет полезно для всех, чтобы научиться использовать AngularJS.