2013-06-21 4 views
0

Я делаю ajax-звонок для проверки доступности имени пользователя. Url для вызова жестко закодирован в js-файле. например, http://abc.com/users/check_availability.Ошибка перекрестного домена даже при вызове ajax из одного домена

Теперь, когда я делаю вызов ajax от http://abc.com, он работает нормально, однако, если я звоню от http://www.abc.com, он дает ошибку перекрестного домена.

XMLHttpRequest не может загрузить http://abc.com/users/check_availability?username=sd. Происхождение http://www.abc.com не разрешено Access-Control-Allow-Origin.

Как это решить? Является ли jsonp единственным способом?

+0

Перенаправление любые запросы для страниц '' www.abc.com' в abc.com'. Вы можете сделать это с помощью [mod_rewrite] (http://httpd.apache.org/docs/current/mod/mod_rewrite.html), если вы используете Apache. –

ответ

1

Вы пробовали установки значения заголовка HTTP альтернативный, когда ваша служба возвращает данные:

Access-Control-Allow-Origin:* 

Access-Control-Allow-Headers:"Content-Type, X-Requested-With, X-Auth-Token" 

Это работало на нас при попытке сделать REST звонки на услуги в различных суб-доменов.

Вам не нужно делать Access-Control-Allow-Origin: * вы, вероятно, можете быть более ограничительным. Но мы попробовали это, чтобы проверить, не сработает ли это.

Просто для уточнения - мы по-прежнему использовать JSON и не JSONP

+0

Спасибо Sharath, мы добавили заголовок («Access-Control-Allow-Origin: http: // www. Abc.com») в http://abc.com/users/check_availability и он начал работать. –