У меня есть простая конечная точка 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 строит строку запроса, как и ожидалось, и когда она достигает конечной точки, я получаю тот же беспорядок, что и раньше.
Что мне не хватает? Как я могу решить эту проблему?
Задача ещё не решена.
Других решений пока нет …