多个Ajax调用(只有Firefox调用跨域)

时间:2014-07-26 10:07:24

标签: php jquery ajax

我试图以一种方式执行2个ajax调用,无论从第一个ajax调用接收的是第二个ajax调用的数据,在chrome上正常工作但firefox提供跨域问题但两个文件都在同一个域上。

$('.sharer').click(function(e) {
    $.ajax({
        type: "POST",
        cache: false,
        async: false,
        url: "sharer.php",
        data: $("#myForm").serializeArray(),
        success: function(response) {
            $(".the-return").html(response); // i am passing .the-return to next ajax call
        } // success
    }); // ajax

    $(".the-return").html2canvas({
        proxy: "src/proxy.php",
        onrendered: function(canvas) {

            var img = canvas.toDataURL("image/png");
            var output = img.replace(/^data:image\/(png|jpg);base64,/, "");
            var output = encodeURIComponent(img);
            var Parameters = "image=" + output;

            $.ajax({
                type: "POST",
                url: 'save2.php',
                async: false,
                data: Parameters,
                success: function(datas) {
                    $(".sharer").html("<img src='img/share.png'/>");
                    //$(".imgs").html(datas);
                }
            });
        }
    });
});

3 个答案:

答案 0 :(得分:0)

在你的javascript文件中创建两个函数。第二个Ajax调用应该与参数一起使用。第二个ajax调用你应该调用第一个.done()。这适用于每个浏览器。

答案 1 :(得分:0)

function firstajaxcall() {
   //do all you want before sending first post
    $.ajax({
        url: "url",
        context: document.body,
        data:'data'
    }).done(function(d) {

      //here you place whole ajax2 call

    });
}

答案 2 :(得分:-1)

将html2Canvas带入成功

$('.sharer').click(function(e) {
    $.ajax({
        type: "POST",
        cache: false,
        async: false,
        url: "sharer.php",
        data: $("#myForm").serializeArray(),
        success: function(response) { 
            $(".the-return").html(response); // i am passing .the-return to next ajax call

            $(".the-return").html2canvas({
        proxy: "src/proxy.php",
        onrendered: function(canvas) {

            var img = canvas.toDataURL("image/png");
            var output = img.replace(/^data:image\/(png|jpg);base64,/, "");
            var output = encodeURIComponent(img);
            var Parameters = "image=" + output;

            $.ajax({
                type: "POST",
                url: 'save2.php',
                async: false,
                data: Parameters,
                success: function(datas) {
                    $(".sharer").html("<img src='img/share.png'/>");
                    //$(".imgs").html(datas);
                }
            });
        }
    });

        } // success
    }); // ajax