Как сделать AJAX-запрос похожим на обычный, обычный запрос - PullRequest
3 голосов
/ 22 июня 2011

Какие параметры на $.ajax я должен установить, чтобы попытаться замаскировать AJAX-запрос как обычный запрос?Я думаю, это связано с правильными заголовками.

Я думаю, большая часть проблемы в том, что при работе с локальным .html-файлом jQuery устанавливает значение заголовка дляOrigin до null.

Есть ли способ вынуть заголовок Origin?

В данный момент Я получаю разные результатыс того же URL-адреса , если я перехожу к нему через веб-браузер и когда я делаю AQAX-запрос jQuery.

Ответы [ 3 ]

6 голосов
/ 22 июня 2011

Единственное, что отличается в AJAX-запросе, отправленном с помощью jQuery, по сравнению с обычным запросом (что вы подразумеваете под обычным запросом) - это добавляемый HTTP-заголовок X-Requested-With: XMLHttpRequest.Этот заголовок может быть удален следующим образом:

$.ajax({
    url: '/foo',
    type: 'POST',
    data: { bar: 'baz' },
    beforeSend: function(xhr) {
        xhr.setRequestHeader(
            'X-Requested-With',
            {
                toString: function() { return ''; }
            }
        );
    },
    success: function(result) {
       alert(result);   
    }
});

или глобально для всех запросов AJAX на вашем сайте:

$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader(
            'X-Requested-With',
            {
                toString: function() { return ''; }
            }
        );
    }
});
4 голосов
/ 31 августа 2011

Из-за одинаковой политики происхождения , применяемой всеми современными браузерами, это невозможно .

0 голосов
/ 07 сентября 2017
  1. jQuery не устанавливает заголовок источника.Это может сделать только сам браузер.И jQuery (или javascript) не имеет власти над этим заголовком.

  2. здесь приведена ссылка на случаи заголовка Origin, для которых установлено значение null Null Origin Header

  3. единственное различие между jquery и обычным запросом действительно X-Requested-With: XMLHttpRequest, вы можете удалить его вручную, или вы можете делать запросы с новым XMLHttpRequest или с fetch ().

удачи

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