jQuery.ajax не отправляет правильные заголовки ajax при использовании HTTPS - PullRequest
9 голосов
/ 14 марта 2012

Всякий раз, когда я создаю запрос jQuery.ajax, он отлично работает, когда URL использует протокол HTTP.Но когда я отправляю тот же запрос на сервер HTTP, он отправляется без заголовка [HTTP_X_REQUESTED_WITH: XMLHttpRequest].Таким образом, сервер не может знать, что это AJAX-запрос!

Я пытался:

  • Переключение $ .ajax, $ .post, $ .get
  • Форсирование заголовка с помощью beforeSend
  • Настройка CrossDomain:true

Примечание: междоменных проблем нет, запрос действителен и обработан, ноне как AJAX.

Эта проблема возникает, когда текущим URL-адресом является http, но запрошенный URL-адрес находится в том же домене, но использует HTTPS.http://example.com/home будет использовать AJAX POST для публикации на

Ответы [ 3 ]

5 голосов
/ 14 декабря 2012

Я попробовал подход Кишора, но заголовок не был отправлен. Я изменил его, установив заголовок так:

$.ajax {
  beforeSend: function(jqXHR, settings) {
    jqXHR.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
  },
  ...
};

Я использую jQuery 1.8.2.

3 голосов
/ 31 декабря 2012

У меня возникла та же проблема при выполнении одних и тех же вещей между http и https.
Я исследовал это, и это междоменная проблема. Пожалуйста, попробуйте JSONP с функцией обратного вызова для выполнения этого, и самое важное, что на стороне сервера, которую вы используете для выполнения curl, необходимо установить несколько заголовков для разрешения подключения http к https. Это ниже:

header("Access-Control-Allow-Origin: your https url");
header("Access-Control-Allow-Methods: POST, GET");
header("Access-Control-Max-Age: 1728000");

header("Access-Control-Allow-Headers: Content-Type, Connection, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control");
header("Connection: close");      
1 голос
/ 24 марта 2012
$.ajax {
    ...
    ...
    beforeSend : function(jqXHR, settings) {
                   jqXHR.setRequestHeader("HTTP_X_REQUESTED_WITH", "XmlHttpRequest"
                 }

    ...
    ...
}

Надеюсь, это поможет: D

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