Кросс-домен .ajax и MySQL не работают правильно - PullRequest
0 голосов
/ 27 декабря 2011

Я выполняю запрос .ajax на другом домене, в частности на поддомене основного домена, после нажатия на кнопку формы регистрации, это код:

$.ajax({
  type: "GET",
  url: "http://sub.domain.com/query.php?s="+a,
  crossDomain:true,
  cache: false,
  success: function(html){
   alert(html);
  },
  error:function (xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);
  },    
  statusCode: {
    404: function() {
      alert('page not found');
    }
  }
}

В query.php у меня есть 3функции заголовка php и один запрос, но когда эта страница вызывается, я вижу, что в записях db 2 очень странно.БД Я не могу найти ошибку.

Ответы [ 2 ]

1 голос
/ 27 декабря 2011

При выполнении ajax с перекрестным происхождением браузер может выполнять то, что называется запросом предварительной проверки - он в основном выполняет один запрос с методом запроса OPTIONS, чтобы выяснить, разрешает ли сервер запросы на перекрестный источник, чторазрешены методы http и так далее.Если это подтвердится, то он выполнит фактический запрос (и запомнит, каков был результат запроса OPTIONS (с учетом политик кэширования), так что в следующий раз это не нужно будет делать.

Ваш php-код не делает различий между предварительным запросом и фактическим запросом «сделай это» и поэтому вставляет данные дважды. Прежде чем предпринимать какие-либо действия, кроме отправки заголовков перекрестного происхождения, следует проверить метод http.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Требуется побочный эффект GET.

0 голосов
/ 27 декабря 2011

Все в порядке с кодом, который вы разместили. Я думаю, что будет более полезно опубликовать весь код HTML + JS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...