Что вы имеете в виду, что это меняет URL?Он пытается получить доступ к URL http://www.example.com/id=123&place=123
?Или он все еще пытается получить доступ к http://www.example.com/id=123&place=123
?Когда я пытаюсь в вашем примере указать на localhost
вместо example.com
и записать запрос из Safari 5, я получаю амперсанд &
, а не &
$ nc -l 4242
GET /?id=123&place=123 HTTP/1.1
Host: localhost:4242
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Referer: http://livedom.validator.nu/blank.html
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive
Обратите внимание, что при использовании &
в URL в вашем источнике есть верный способ написать это;если вы напишите &
, браузеры попытаются интерпретировать следующий текст как сущность.Если он не может найти подходящую сущность, он будет предполагать, что вы неправильно использовали необработанный &
, и будете использовать его, но вы должны быть осторожны, потому что вы могли случайно сформировать сущность вместо фактического амперсанда и того, что вы запрашивали.Поэтому, чтобы избежать возможных ошибок, вы должны написать &
в своем коде.Если вы проверяете или сериализуете DOM, например, через innerHTML
, Safari может переписать URL-адрес, чтобы вы правильно использовали &
, чтобы избежать ошибок такого рода.