JQuery AJAX запрос кросс-домен с JSONP не работает в IE6 - PullRequest
0 голосов
/ 31 января 2012

Я делаю плагин jquery похожим на:

(function($){
$.fn.plugin_name = function(){
    var methods = {
        getSomeThing: function(callback){
            $.ajax({
                type: 'GET',
                dataType: 'jsonp',
                url: 'http://thirdparty.com/get',       
                success: function(response){
                    callback(response);
                }
            });
        },
        getDetail: function(callback){
            $.ajax({
                type: 'GET',
                dataType: 'jsonp',
                url: 'http://thirdparty.com/getdetail',
                data:{id:1},
                success: function(response){
                    //this code block has never executed in IE6
                },
                error: function(request, status, error){
                    alert(request.statusText); // i get "success" in IE6
                    alert(status); // i get "parseerror" in IE6
                    alert(error.error); // i get [object Error] in IE6
                }
            });
        }
    };

    return this.each(function(){
        var self = $(this);
        methods.getSomeThing(function(response){ // work OK
            //process response
            self.html(response.html); // work OK

            self.append('<a href="javascript:;" id="linkDetail">View Detail</a>');

            self.on('click','#linkDetail',function(){
                //i make an ajax request here
                methods.getDetail(function(response){
                    //failed!!
                });
            });

        });
    });
}

}) (jQuery);

Я использовал jsonp для отправки запросов по доменам.

Работает нормальнов Firefox, Chrome, IE7,8, но не в IE6.

Что-то не так в методе getDetail , когда я нажимаю Просмотреть подробности ссылка, я получил ошибки.

Я пытаюсь отладить его с помощью Fiddler, тогда я не вижу запроса, когда нажимаю Просмотр подробностей , но я все еще получаю ошибки?!

Iне могу понять эту проблему, кто-нибудь, помогите мне, пожалуйста!Большое вам спасибо!

1 Ответ

1 голос
/ 02 февраля 2012

Я решил проблему! Я просто хочу поделиться с вами этим советом.

Кажется, что-то не так, когда щелчок события был запущен на якоре, подобном этому:

<a href="javascript:;" id="linkDetail">View Detail</a>

В этом случае я использую event.preventDefault (), поэтому действие по умолчанию для события не будет запущено.

self.on('click','#linkDetail',function(event){
        event.preventDefault();
            //i make an ajax request here
            methods.getDetail(function(response){
                //failed!!
            });
        });

Тогда все отлично работает в IE6!

...