加载插件时出错

时间:2012-02-27 20:01:31

标签: javascript jquery ajax plugins

我为朋友创建了一个插件,它在我的网站上完美运行。但是,每当我将它发布在另一台服务器上时,它都无法正常工作。加载页面时,它会遍历函数loadBox()的所有步骤,但无法在<div>内加载PHP页面。它只是保持.gif运行。请帮忙。这真的很烦人。以下是我们发布的插件以获取插件:

<div id="ferridev_twitter_box" load_type="personal" twitter_name="jpferrierjr" tweet_number="15" tone="dark"></div>
<script type="text/javascript" src="http://www.johnferrier.com/js/jquery.js"></script>
<script type="text/javascript" src="http://www.johnferrier.com/plugins/twitter/js/ferridev_twitter_plug-in.js"></script>

jquery.js文件只是一个标准的jQuery文件。但是,ferridev_twitter_plug-in.js是我做的那个。它的内容如下:

$(document).ready(function()
{
    function loadBox()
    {
        $('#ferridev_twitter_box').html("<div style='height:400px; width:300px; padding-top:167px; text-align:center;'><center><span style='position:relative;'><img src='http://www.johnferrier.com/images/loading/loading17.gif' /></span></center></div>");
        var a = $('#ferridev_twitter_box').attr("twitter_name");
        var b = $('#ferridev_twitter_box').attr("tweet_number");
        var c = $('#ferridev_twitter_box').attr("tone");
        var d = window.location;
        var e = $('#ferridev_twitter_box').attr("load_type");
        $('#ferridev_twitter_box').load("http://www.johnferrier.com/plugins/twitter/php/ferridev_twitter_plug-in_parser.php?name="+a+"&limit="+b+"&tone="+c+"&type="+e);
    }
    loadBox();
});

你们有什么不对吗?谢谢!

2 个答案:

答案 0 :(得分:1)

跨域政策限制。您正在尝试向其他服务器执行ajax请求。

$('#ferridev_twitter_box').load("http://www.johnferrier.com/plugins/twitter/php/ferridev_twitter_plug-in_parser.php?name="+a+"&limit="+b+"&tone="+c+"&type="+e);

查看这些跨域ajax示例:http://usejquery.com/posts/the-jquery-cross-domain-ajax-guide

答案 1 :(得分:1)

这不是不可能的,您可以使用jsonp来设置这样的通用Web服务,但是由于浏览器的安全性,跨域JavaScript很难。

http://forum.jquery.com/topic/cross-domain-load

JQuery Cross-Domain .load() (self-constructing widget)

这可能对您有用:

http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/