jQuery.ajax (1.4.3) вызов jsonp не удаляет скрипт обратного вызова из тега head - PullRequest
1 голос
/ 05 ноября 2010

Я использую 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>

1 Ответ

2 голосов
/ 05 ноября 2010

В jQuery 1.4.4 RC есть решение этой проблемы.

...