jquery ajax пост с location.href в данных не работает - PullRequest
0 голосов
/ 07 февраля 2020

Что мешает типу POST получить ожидаемый результат при использовании location.href (или window.location.href) в качестве данных?

Этот код не работает (ничего не возвращает):

$.ajax({
    type: "POST",
    url: 'page.asp',
    data: {'q': location.href},
    success: function(short_link,status){ 
        console.log('short_link = '+short_link);
        console.log('status = '+status);
    }
});

enter image description here

Я вижу, что q значение отправляется в браузере Информация о сети, НО как-то похоже, что POST перенаправлен на GET из-за объекта 302, перемещенного код состояния. Во многом как там сказано: Возврат перенаправления в ответ на запрос XHR

enter image description here

Однако, если я изменю его на data: {'q': 'to some string'} это работает.

Кроме того, если я изменяю код на GET (и код в 'page.asp' соответственно), он также работает:

$.ajax({
    type: "GET",
    url: 'page.asp?q='+location.href,
    success: function(short_link,status){ 
        console.log('short_link = '+short_link);
        console.log('status = '+status);
    }
});

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020

Я искал не в том месте.

У page.asp была проверка на SQL функцию впрыска, которая вызывала ошибку.

0 голосов
/ 07 февраля 2020

Я думаю, что вы должны закодировать URL, чтобы заменить специальные символы.

...