Я пытаюсь войти на мой сайт WordPress с помощью вызова ajax, который я задал в предыдущем вопросе . Он ничего не должен отвечать. Но всякий раз, когда я называю эту функцию ajax, Firefox (firebug) показывает 200 OK в красном. Это должна быть проблема с перекрестным доменом. Пробовал слишком много вещей, но пока не повезло. Вот код:
$.ajax({ type: "POST", url: "http://path-to-wordpress/wp-login.php", data:myData success: function(data){ }, error: function (xhr, ajaxOptions, thrownError) { } });
Любое предложение будет оценено по достоинству.
Я предполагаю, что ваш код JS находится на abc.com
а ваш сайт WordPress – dev.abc.com
.
Чтобы устранить проблему с перекрестным доменом, просто добавьте следующий код в файл .htaccess
на ваш сайт WordPress ( dev.abc.com
)
SetEnvIf Origin "^http(s)?://(.+\.)?(abc\.com)$" origin_is=$0 Header always set Access-Control-Allow-Origin %{origin_is}e env=origin_is
Просто замените (abc\.com)
на правильное имя сайта. Например: (google\.com)
или (yahoo\.com)
Установите dataType в JSONP
, в вашем вызове ajax, и он будет работать в междоменном
Для refrence ot ajax call visit jQuery Ajax
Существует свойство с именем crossDomain из $ .ajax. Установите значение true.
Вам нужно добавить заголовки CORS на странице wp-login.php
.
Вот как это сделать
Но, учитывая характер страницы, будьте осторожны: не разрешайте все происхождение (*), а только ваш сайт . Если вы разрешите все, ваши пользователи могут украсть свою регистрационную информацию.