Как предотвратить обрезание строк в знаке #? - PullRequest
0 голосов
/ 10 сентября 2018

Я создаю социальную сеть и хочу включить функцию #hashtag ... проблема в том, что посты обрезаются на #. Например, если я напишу «Hello #StackOverflow community!», Получится строка «Hello». Ниже приведен код и отладочный скриншот.

$("#btnPostStatus").click(function () {
    var post = $("#txtNewStatus").val();
    $.post('/Logic/postStory?text=' + post.toString() + '', null, function(result) {
        alert(result);
        location.reload();
    });
});

Ответы [ 3 ]

0 голосов
/ 10 сентября 2018

Это происходит потому, что знак # в URL-адресе интерпретируется как так называемый с именем anchor .Попробуйте кодировать URL следующим образом:

$.post('/Logic/postStory?text=' +  encodeURIComponent(post.toString()), ...

Кстати, + '' в вашем случае не требуется.

0 голосов
/ 10 сентября 2018

# следует заменить на %23

Пожалуйста, проверьте Ссылка на кодировку HTML HTML для более подробной информации.

Вы можете закодировать запрос, используя encodeURIComponent или просто заменив # на %23 в своем коде.

Я бы предложил закодировать весь URL.

0 голосов
/ 10 сентября 2018

Правильно закодируйте их с помощью encodeURIComponent:

'/Logic/postStory?text=' + encodeURIComponent(post)

Важно сделать это для любого значения , которое вы указали в строке запроса URL. (На самом деле, ключи тоже должны быть выполнены, но encodeURIComponent("text") - это "text", так что вы можете обойтись без этого конкретного ключа и любого другого, состоящего только из букв и цифр.)

Также обратите внимание, что и .toString() на post, и + '' не нужны.


Обратите внимание, что вы включаете параметр text в URL (например, как параметр GET), а не как данные POST. Если это действительно то, что вы хотите сделать, это нормально, но если вы намеревались включить его в данные POST, вам нужно предоставить его в качестве второго аргумента: $.post('/Logic/postStory', {text: post}, ...). (И если вы передадите его таким образом, как объект, jQuery будет обрабатывать для вас кодировку URI.)

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