Конечная точка API PHP, передающая значение с помощью jQuery.get (..), содержащего амперсанд (& amp;)

У меня есть простая конечная точка PHP API. Возможный запрос может выглядеть так

api.php?v1=bob&v2=foo

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

url:      www.bob.com/?v3=bacon&v4=apples
request:  api.php?v1=www.bob.com/?v3=bacon&v4=apples&v2=foo

Теперь, очевидно, это не работает, когда я пытаюсь получить доступ v1 с $_GET["v1"] я получил www.bob.com/?v3=bacon, часть &v4=apples отсутствует, потому что $_GET думает, что это еще один параметр.

Поэтому я попытался закодировать URL следующим образом:

url = encodeURIComponent(url)

И передаем его с помощью jQuery в конечную точку с помощью следующего кода:

$.get("api.php", { v1: url, v2: 'foo'}, function(data, status) {
...
});

Это все еще не работает.

Я предполагаю, что jQuery строит строку запроса, как и ожидалось, и когда она достигает конечной точки, я получаю тот же беспорядок, что и раньше.

Что мне не хватает? Как я могу решить эту проблему?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …