javascript - AJAX 调用在 ipad 上不触发但在桌面上正常

标签 javascript jquery ios ajax

我有以下自定义插件代码

(function ($) {
    $.fn.createGallery = function(options) {
        var theObject = $(this);
        var settings = $.extend({
            // These are the defaults.
            server: 'http://localhost/jQuery%20Gallery/images/galleries/homepage_gallery',
            galleryName: 'Test',
            galleryWidth: theObject.parent().width(),
            galleryImageMargin: 20,
            galleryImageColumns: 2,
            imageQuality: 100
        }, options);

        var galleryImageWidth = settings.galleryWidth / settings.galleryImageColumns;
        var imageUrl = settings.server;

        var otherMargin = Math.round(settings.galleryImageMargin / 2);
        var finalImageWidth = Math.round(galleryImageWidth - settings.galleryImageMargin);
        var finalImageHeight = Math.round(galleryImageWidth / 1.4);
        var finalGalleryWidth = settings.galleryWidth - settings.galleryImageMargin;

        $(this).before('<style>'+$(this).selector+' li:nth-child('+settings.galleryImageColumns+'n+1) { margin-left: 0; } '+$(this).selector+' li:first-child { margin-left: 0; } '+$(this).selector+' { width: '+finalGalleryWidth+'px; margin: 0px; } '+$(this).selector+' li { display: inline-block; list-style: none; margin-left: '+settings.galleryImageMargin+'px; margin-bottom: '+otherMargin+'px; } </style>');

        $.ajax({
            url: imageUrl,
            success: function(data){
                console.log('SUCCESS');
                var extension = '.jpg';
                $(data).find("a:contains("+extension+")").each(function(){
                    // will loop through 
                    var filename = $(this).attr("href");
                    $('<li></li>').html('<a href="'+imageUrl+'/'+filename+'" class="fancybox"><img src="thumbnail.php?src='+imageUrl+'/'+filename+'&q='+settings.imageQuality+'&h='+finalImageHeight+'&w='+finalImageWidth+'"/></a>').appendTo(theObject);
                });
                theObject.children('li:nth-child('+settings.galleryImageColumns+'n+1)').addClass('triggerMarginIE8');
            },
            failure: function(data){
                console.log('FAIL');
            }
        });
    };
}(jQuery));

据我所知,这在我的桌面上运行良好。然而,AJAX 无法在 iOS 设备(可能还有其他设备)或同事的机器上正常触发,它说该文件夹已被永久移动,但实际上并没有!

有什么想法吗?我知道 AJAX 何时运行或不运行是因为 console.log

最佳答案

尝试在 url 中输入相对路径。 :)

   server: 'images/galleries/homepage_gallery', //your relative path...
   var imageUrl = settings.server;

   //Ajax call
   $.ajax({
        url: imageUrl,
        success: function(data){
            console.log('SUCCESS');
            var extension = '.jpg';
            $(data).find("a:contains("+extension+")").each(function(){
                // will loop through 
                var filename = $(this).attr("href");
                $('<li></li>').html('<a href="'+imageUrl+'/'+filename+'" class="fancybox"><img src="thumbnail.php?src='+imageUrl+'/'+filename+'&q='+settings.imageQuality+'&h='+finalImageHeight+'&w='+finalImageWidth+'"/></a>').appendTo(theObject);
            });
            theObject.children('li:nth-child('+settings.galleryImageColumns+'n+1)').addClass('triggerMarginIE8');
        },
        failure: function(data){
            console.log('FAIL');
        }
    });

关于javascript - AJAX 调用在 ipad 上不触发但在桌面上正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21016896/

相关文章:

javascript - Angular JS : rest API is called with a delay

jquery - 防止重叠 HTML 元素触发事件

jQuery 动画因左/右自动边距而失败

ios - View Controller 之间的扩展圆圈动画过渡

javascript - 对象文字 jquery 事件范围

javascript - angularjs 指令缓慢的 dom 操作

javascript - JXBrowser JSFunctionCallback 和 IFrame

javascript - 文件读取器错误 : The object is already busy reading Blobs

ios - Swift 如何根据字体计算一行文本的高度

ios - NSAttributedString 初始化数据 :options:documentAttributes:error: documentAttributes not retained in ARC