2014-09-08 3 views
1

Мы делаем запрос Ajax от server1.corp.xyz.com к server2.corp.xyz.com и все еще получаем ошибку Cross-Origin. Это действительный случай для Cross-Origin или я что-то упускаю. Каким может быть возможное решение.jQuery Ajax Cross Origin Issue?

+1

Да. Это допустимая ошибка. –

+1

Я использовал его в качестве ответа, но потом я понял, что вы также хотите найти решение этой проблемы, пока я это выясню - вот краткое объяснение: Это считается другим хостом: http://en.wikipedia.org/ wiki/Same-origin_policy # Origin_determination_rules –

+0

, если у вас есть 'server2.corp.xyz.com', тогда простое решение - включить [CORS] (https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) в этом домене –

ответ

2

Что может быть возможным решением.

Вы можете включить Cross Origin Resource Sharing на вашем server2.corp.xyz.com сервере, чтобы запросы от вашего server1.corp.xyz.com сервера. Затем запрос будет работать практически с любым CORS-enabled browser. Я говорю «почти», потому что вы сказали, что используете jQuery и причудливо (на мой взгляд), jQuery не работает с несовместимостью браузера в этом отношении, как и многие другие: IE8 и IE9 поддерживают CORS, но они не поддерживают его через стандартный объект XMLHttpRequest; вместо этого вы должны использовать объект XDomainRequest. (Microsoft делает это правильно, начиная с IE10.) Поэтому, чтобы запрос на перекрестный поиск работал на IE8 или IE9, вам нужно либо непосредственно использовать XDomainRequest, либо использовать jQuery's ajax, или вам нужно найти и использовать плагин/плагин для jQuery, который добавляет поддержку IE8 и 9 (я понимаю, что есть некоторые, но у меня нет конкретной рекомендации).

2

Вы можете установить происхождение с htacess в папку

Header add Access-Control-Allow-Origin "*" 
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" 
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" 

Или искать в Google, как установить происхождение. Я предпочитаю устанавливать источник только для домена server1.corp.xyz.com. Вы можете установить в apache тоже.

+0

Где я могу установить источник с htacess на server1 или server2. –

+0

Вы должны создать .htacess на сервере2. Основная цель - получить доступ к запросу Ajax с сервера1 на server2. – Kristiyan

+0

У меня есть Tomcat, установленный на сервере 2, и я верю, что мне не позволят делать какие-либо изменения там. Похоже, я могу идти только по круговой трассе? –