如何使用jquery将远程内容加载到对话框中?

时间:2010-11-18 16:15:01

标签: javascript ajax jquery cross-domain

我试图用jquery加载我网站的远程内容,但我经常收到错误:

  

XMLHttpRequest无法加载   ' anylink_here'   原则为null不允许   访问控制允许来源。

这是我的代码:

jQuery(function(){
    $('#checkout').submit(function(e){
        //prevent default behavior and hide possibly existing pop-up
        e.preventDefault();
        //process request
        var form = this;
        var url = form.action;
        var dialog = $('<div id="lightbox_dialog"></div>').appendTo('body');
        // load remote content
        dialog.load(
            url,
            function (response, status, xhr){
                dialog.html(response);
            });
        dialog.dialog();
        //prevent the browser to follow the link
        return false;
    });
});

表格代码:

<form id="checkout" action='http://me.me/' method='get'>
        <input type="image" class="class1" onclick="this.form.action='http://en.wikipedia.org/wiki/Sample'" title="Title" value="" src="http://4cornersautoloan.com/images/SmallButton.gif">
    </form>

我还需要为同一个域执行此操作,但是从http到https。

3 个答案:

答案 0 :(得分:1)

这是不可能的,因为ajax不支持跨域请求,http到https将被视为一个。

答案 1 :(得分:1)

您需要在同一个域上执行服务器端代码才能为您执行提取。

答案 2 :(得分:0)

如果把它拿出来怎么样?

<body>
        <p id="open">Click to open</p>
        <div id="dialog" title="window title">
            <p><iframe src="popup.html" ></iframe></p>
        </div>
        <script>

            $('div#dialog').dialog({
                autoOpen : false,
                show : "scale",
                hide : "scale",

            });
            $('#open').click (function (event)
                {
                    if ($("#dialog").dialog("isOpen"));
                    else $("#dialog").dialog("open");
                });

        </script>
    </body>
</html>