2014-01-24 186 views
0

我試圖根據用戶興趣創建一個簡單的Newsfeed頁面。 下面我已經提供了我的代碼相同..我只是不明白這裏的問題..事情是這樣的代碼工作正常在我的本地主機,但它不工作在同一個在線servers.But $(窗口).scroll(函數()的正常使用和的數據都是被抓取正常但是.load()函數是無法獲取DATAS。Javascript .load()函數未執行

我是gettingbelow錯誤在JavaScript Consol.log

XMLHttpRequest無法加載 http://redirect.main-hosting.com/error404.php/26?domain=www.nizilla.tk。 否請求的 資源上存在'Access-Control-Allow-Origin'標頭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; 

      }); 

     } 
    } 
}); 

} 
}); 

這將是很有益的,如果你能指出我的錯誤here..i真的很感謝你的幫助

+0

結賬此相關的帖子。 http://stackoverflow.com/questions/6114436/access-control-allow-origin-error-sending-a-jquery-post-to-google-apis – Jason

回答

1

如果我的理解是正確的,你正在做一個XMLHttpRequest到不同的域比你的頁面上。因此,瀏覽器會阻止它,因爲出於安全原因,它通常允許同一來源的請求。當你想做一個跨域請求時,你需要做一些不同的事情。有關如何實現這一目標的教程是Using CORS

當您使用郵遞員時,他們不受此政策的限制。從Cross-Origin XMLHttpRequest報價:

普通網頁能夠使用XMLHttpRequest對象從遠程服務器發送和接收數據,但他們通過同源策略的限制。擴展不限於此。只要它首先請求跨源許可,擴展就可以與遠程服務器進行通信。

+0

謝謝盧卡斯...感謝已經看穿它..我是仍然無法得到它..我的意思是如何是一個croww_policy_origin問題。所有我的引用指向相同的域名和非我的鏈接指向任何跨站點。如果這真的是問題,那麼它是如何工作的post()函數。 感謝您的回覆。 – nitte93user3232918

+0

http://www.myadress.com和http://myadress.com是不同的域 – KiraLT

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"您所指的網址也是無效的,其中有空格。

+0

嗨..阿隆感謝您的寶貴意見..但在這裏,我接受了相同的域名..我沒有使用任何跨域在這裏.. – nitte93user3232918

+0

而我的兩個文件託管在同一臺服務器和域名。 – nitte93user3232918

+0

您正在使用哪個瀏覽器,請查看基地址 –

0

由於「相同原點策略」,加載函數未被執行。請求的資源必須位於同一臺服務器上。

+0

感謝奧古斯托我非常感謝您的幫助!所以我在這裏做錯了什麼?..因爲我沒有在這裏使用任何跨域,並且我所有的鏈接都指向相同的域名。所以我不認爲你有任何相同的_origin_policy機會。 – nitte93user3232918

+0

嗨Augusto ..我經歷了你的博客,它寫得很好.. Butas說「有一點要記住的是,查詢將允許你只從你的網站加載資源。也就是說,你不能告訴jQuery告訴一個來自其他網站的頁面/片段「。但這正是我的疑問,因爲我所有的jQuery鏈接和其他鏈接都指向相同的域名和服務器。那麼這是一個怎樣的問題。 – nitte93user3232918

+0

我很高興你喜歡它。然後,如果您確定所有請求都指向同一個網站,請使用相對路徑,例如個人資料php/userinterest.php – Augusto