Javascript .load()函数没有执行

时间:2014-01-24 17:29:13

标签: javascript php jquery ajax

我正在尝试根据用户的兴趣创建一个简单的Newsfeed页面。 下面我提供了相同的代码..我只是不明白这里的问题..事情是这个相同的代码在我的localhost上工作正常,但它在在线服务器上不能正常工作。但是$(窗口) .scroll(function()工作正常,数据正在正常获取,但.load()函数无法获取数据。

我在javascript Consol.log中收到错误

  

XMLHttpRequest无法加载   http://redirect.main-hosting.com/error404.php/26?domain=www.nizilla.tk。   请求中不存在“Access-Control-Allow-Origin”标头   资源。因此不允许来源“http://www.nizilla.tk”   访问。

我也尝试将src路径更改为src =“./ profile-newsfeed / jquery-1.9.1.min.js”但仍然面临同样的错误。

/*--------------------------------  */

  <script src="http://www.nizilla.tk/profile-newsfeed/jquery-1.9.1.min.js">   </script>

 <script type="text/javascript">

 $(document).ready(function() {
    var track_load = 0; //total loaded record group(s)
var loading  = false; //to prevents multipal ajax loads
var total_groups = <?php echo $totalpage; ?>; //total record group(s)
//alert(total_groups);
if(total_groups<=0)
  {
window.location='http://www.nizilla.tk/profile php/profilefollow.php';//
}
else
{
$('#container').load('http://www.nizilla.tk/profile php/userinterest.php', {'group_no':track_load}, function() {track_load++;}); //load first group

$(window).scroll(function() { //detect page scroll

    if($(window).scrollTop() + $(window).height() == $(document).height())         //user scrolled to bottom of the page?
    {

        if(track_load <= total_groups && loading==false) //there's more data to load
        {
            loading = true; //prevent further ajax loading
            $('.animation_image').show(); //show loading image

            //load data from the server using a HTTP POST request

            //http://www.nizilla.tk/profile php/userinterest.php
            $.post('http://www.nizilla.tk/profile php/userinterest.php',{'group_no': track_load}, function(data){

                $("#container").append(data); //append received data into the element

                //hide loading image
                $('.animation_image').hide(); //hide loading image once data is received

                track_load++; //loaded group increment
                loading = false; 

            }).fail(function(xhr, ajaxOptions, thrownError) { //any errors?

                alert(thrownError); //alert with HTTP error
                $('.animation_image').hide(); //hide loading image
                loading = false;

            });

        }
    }
});

}
 });

如果你能在这里指出我的错误真的很有帮助......我非常感谢你的帮助

3 个答案:

答案 0 :(得分:1)

如果我理解正确,您正在使用XMLHttpRequest到与您的网页不同的域名。因此浏览器会阻止它,因为出于安全原因,它通常允许同一来源的请求。当您想要执行跨域请求时,您需要做一些不同的事情。有关如何实现这一目标的教程是 Using CORS

当您使用邮递员时,他们不受此政策的限制。引自 Cross-Origin XMLHttpRequest

  

常规网页可以使用XMLHttpRequest对象从远程服务器发送和接收数据,但它们受到相同原始策略的限制。扩展不是那么有限。扩展可以与其来源之外的远程服务器通信,只要它首先请求跨源权限。

答案 1 :(得分:1)

可能的灵魂是CORS ...浏览器不允许从不同的域获取数据,其浏览器安全策略。浏览器实现相同的原始政策。

您可以在同一个域中托管两个应用程序,也可以将CORS实现为请求服务器应用程序。

编辑:

www.abc.com != abc.com != http://www.abc.com != https://abc.com != https://www.abc.com

浏览器感觉有区别。它们在技术上是不同的。

"http://www.nizilla.tk/profile php/userinterest.php"你提到的网址也是无效的,其中有空格。

答案 2 :(得分:0)

由于“原始政策相同”,因此未执行加载功能。请求的资源必须位于同一服务器中。