2013-05-22 3 views
0

Я разрабатываю интерфейс (html-jquery) и внутренний (php) веб-службы. Я разрабатываю свой локальный хост с помощью XAMPP (Apache). Я сохранял свой интерфейс и back-end внутри разных проектов на затмении, чтобы все было чище.Ошибка в политике происхождения, jQuery

Однако мне нужно было сделать ajax-вызов (запрос Http Post) из jQuery на php-сервер. Я всегда получаю сообщение об ошибке: XMLHttpRequest cannot load http://193.164.4.112/Server_CityInfo/whereSubscribed.php. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

Я искал ошибку, и я узнал, что она имеет отношение к Same Origin Policy.

Я также читал, что возможные решения этой проблемы - использовать CORS, JSONP или прокси. Однако из определения ошибки я понимаю, что простое хранение файлов в одном каталоге решит проблему правильно? Итак, что я сделал, это переместить все файлы конца файла в мой фоновый каталог и попытался снова запустить html-страницы для запроса.

Boom! Я снова получаю ту же ошибку. Я делаю что-то неправильно здесь? Не должно ли это работать сейчас, когда они находятся в одном каталоге?

+0

Что вы подразумеваете под * «переместили все файлы в конце концов в мой фоновый каталог» *? – Joseph

+0

переместил мои html-файлы с моими файлами php, чтобы они были в одном каталоге. Прежде чем я смог получить свой html: 192.168.2.1/clientSide/example.html и мой php: 192.168.2.1/serverSide/example.php. Теперь я удалил каталог clientSide и переместил все файлы в каталог serverSide. Все отлично работает сейчас. –

ответ

1

просто сохраняя файлы в том же каталоге, позволит решить проблему правильного

No. Они должны быть на том же происхождения (протокол, имя хоста, порт).

У вас есть:

http 193.164.4.112 80 (default for HTTP) 
http localhost  80 (default for HTTP) 

193.164.4.112 не localhost, так что вы попали в такую ​​же политику происхождения.

193.164.4.112 и localhost могут разрешаться на одном компьютере, обрабатываться одним и тем же веб-сервером и обслуживаться одними и теми же файлами, но браузер этого не знает. URL-адреса должны совпадать.

+0

+1. Исправьте меня, если я ошибаюсь, вместо того, чтобы использовать абсолютный URL-адрес, относительный url также решит проблему. – Nikhil

+1

Да, это должно работать (пока «может» в последнем абзаце ответа происходит то, что на самом деле происходит) – Quentin

+0

Ok Я решил проблему следующим образом: я печатал в своем браузере localhost/pathToHTML. Вместо этого я на самом деле набрал ip/pathToHTML и работает! Итак, в конце концов, я смогу решить эту проблему, просто сохраняя файлы в одном каталоге прямо? У меня была проблема только потому, что я пытался локально и имел эту ошибку localhost vs ip. Но мои пользователи, которые будут в других ПК, не будут иметь никаких проблем? –

Смежные вопросы