2011-12-20 99 views
4

我是新來的整個javascript/jquery/ajax場景。我有一個網站,我使用以下jQuery ajax腳本在我的個人計算機上開發了一個網站。它在我的機器上完美工作,但是當我將它上傳到服務器時,什麼都不會發生。AJAX需要請求標頭嗎?

 $.post(
      "action URL here", 
      { 
       lat_max: params.lat_max, 
       lat_min: params.lat_min, 
       lng_max: params.lng_max, 
       lng_min: params.lng_min, 
       building_residents: params.building_residents, 
       building_type: params.building_type 
      }, 
      function(json) { 
       buildings = json; 
       updateMarkers(); 
       if(polygons.length > 0){ 
        for(var i = 0; i < poly_buildings.length; i++){ 
         buildPolyBuildings(); 
        } 
       }else{ 
        showAllMarkers(); 
       } 

       filterResults(); 
      }, 
      "json" 
     ); 

我一直在打我的頭這對於幾個小時,現在,唯一的想法,我已經離開的東西我不明白交易 - 請求/響應頭。當我在我的現場網站上運行這個腳本時,Firebug中的請求/響應頭部分下沒有任何東西。但是,當我在本地運行時,有很多東西。我沒有得到什麼?


有請求查看標題的區別。這是我得到我的開發服務器上:

ResponseHeaders 
Date    Tue, 20 Dec 2011 20:45:07 GMT 
X-Powered-By  PHP/5.3.6 
Transfer-Encoding chunked 
Connection   Keep-Alive 
Server    Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8r DAV/2 PHP/5.3.6 
Content-Type  text/html 
Keep-Alive   timeout=5, max=100 

RequestHeaders 
Content-Type  application/x-www-form-urlencoded 
Accept    application/json, text/javascript, */*; q=0.01 
X-Requested-With XMLHttpRequest 

這裏就是我得到的現場服務器:

ResponseHeaders 
RequestHeaders 
Content-Type application/x-www-form-urlencoded 
Accept   application/json, text/javascript, */*; q=0.01 

再次 - 我不知道這是問題,但這是我可以在兩種環境之間看到的唯一功能差異。

+3

什麼是操作URL?因爲知道這一點非常重要,因爲您無法將Ajax請求作爲同一起源策略的一部分發送到不同的域。 – Dunhamzzz 2011-12-20 10:22:30

+2

也許您應該使用curl(使用-d和-i選項)將數據發佈到您的服務器,並直接檢查查詢本身是否真正起作用。並且在完成後將結果追加到您的問題:) – 2011-12-20 10:26:32

+0

'buildings = json;'應該是'var buildings = jQuery.parseJSON(json);' – OptimusCrime 2011-12-20 10:35:22

回答

1

我想清楚發生了什麼事。事實證明,我打算在它的前面沒有「www」域 - 我正在進入裸域。它在代碼中引用的url在其前面有「www」子域。它解決了一切。謝謝你的幫助!

+0

使用相對URL有其優點;-) – 2011-12-21 05:01:45

1

您是否有權訪問新服務器上的錯誤日誌?我最近碰到類似於你的問題,結果發現新服務器上的php配置與舊服務器上的版本不同,這意味着我通過AJAX點擊的頁面失敗(並且不發送響應)。這也可能導致你的問題。

+0

嗯,我完全深入瞭解了這一點,但我有另一個站點運行在同一臺服務器上,並且使用了一個類似於AJAX請求的腳本,並且工作正常。我想知道有什麼可能的原因可能是頭是空的,就像...?我完全困惑。 – Jonathan 2011-12-20 22:31:43