Я использую jQuery 1.4.3 для вызова ajax в службу отдыха ASP.NET MVC 2. Так как эта служба отдыха находится в другом домене, я должен использовать jsonp. Проблема, с которой я сталкиваюсь, заключается в том, что после обновления с jQuery 1.4.2 до 1.4.3 я теперь получаю ошибки javascript, когда jQuery пытается удалить тег, который был введен для обратного вызова jsonp. Данные из службы отдыха возвращаются в порядке.
После просмотра файла jQuery 1.4.3 я вижу, что в этой строке происходит ошибка:
if ( head ) {
head.removeChild( script );
}
После отладки этого раздела в firebug, это то, что происходит. После первого вызова ajax jsonp в метод getDetail () переменная «script» имеет следующее значение, которое находится в переменной «head», поэтому вызывается «head.removeChild (script);» Успешно, и тег сценария удален.
<script src="http://localhost:63505/Locations/Detail/445?callback=fetchLocationInfoWindowCallback"></script>
При последующем вызове того же метода getDetail () с использованием ajax jsonp снова, просматривая отладчик, переменная «script» по-прежнему имеет следующее значение, однако переменная «head» больше не содержит этот тег сценария.
<script src="http://localhost:63505/Locations/Detail/445?callback=fetchLocationInfoWindowCallback"></script>
Вместо этого эта переменная «script» должна иметь следующее значение, которое содержится в переменной «head».
<script src="http://localhost:63505/Locations/Detail/335?callback=fetchLocationInfoWindowCallback"></script>