我正在尝试根据用户的兴趣创建一个简单的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;
});
}
}
});
}
});
如果你能在这里指出我的错误真的很有帮助......我非常感谢你的帮助
答案 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)
由于“原始政策相同”,因此未执行加载功能。请求的资源必须位于同一服务器中。