2011-08-17 71 views
1

我試圖做使用JQuery AJAX調用,其實我有下面的代碼:如何檢查我是否發送了我需要發送的ajax調用?

$('#form-check').click(function(){ 
     $.ajax({ 
      url: "http://www.domain.com/user/checkurl/", 
      type: "GET", 
      data: $(location).attr('pathname').substring(17) + "/" + $('#urlTxt').val(), 
      error: function(){ 
       $('#urlTxt').css('background','#ce2b06'); 
      }, 
      success: function(data){ 
       $('#urlTxt').css('background','#83aa07'); 
       $('#form-check').css('display','none'); 
       $('#form-submit').css('display','block'); 
       $('#result').append(data); 
      } 
     }); 
    }); 

然而,當我使用Firebug檢查我沒有得到任何迴應,我可以看到,我只看到消息被髮送和它說的狀態(200 - 好),但沒有被髮回,並且Ajax調用本身執行「成功」從句,除了它不附加數據。我怎樣才能檢查這個?或者我錯過了什麼?

+1

檢查的Firebug的網絡請求的 「響應」 部分:

這是通過設定具體的數據類型選項

的dataType完成。您也可以使用瀏覽器訪問該頁面,以確保其正常工作。 –

+0

我已經去了使用我的瀏覽器的頁面,它的工作完美,但在Firebug的「響應」選項卡上我什麼也沒得到 – Tsundoku

回答

0

這是一個跨域請求。瀏覽器默認阻止來自跨域網站的響應。你需要使用jsonp作爲數據類型。只需谷歌相同,你可以看到如何使用jQuery API來完成。堆棧溢出也有這些問題。

在同一來源策略下,從server1.example.com提供的網頁無法正常連接到server1.example.com以外的服務器或與之通信。 HTML元素是一個例外。利用元素的開放策略,一些頁面使用它們來檢索使用來自其他源的動態生成的JSON格式數據的Javascript代碼。這種使用模式被稱爲JSONP。

也是我不知道你正在傳遞參數給服務器的方式..你的數據字段應該像理想像

{ 
id:"123", 
type:"student" 
} 

一個JSON對象,你也將理想會想提響應的類型你預計會收到,以便jquery可以正確處理它。 「JSON」 //可以是HTML,XML等

+0

但它應該是從mydomain.com到mydomain.com的一個請求,只是一個不同的文件夾例如:我在mydomain.com/hey,請求發送到mydomain.com/user/checkurl/ – Tsundoku

+0

然後我會建議將其保留爲相對URL即url:/ user/checkurl – Baz1nga

-1

Firebug'sNet選項卡和HTTPFox都讓您看到客戶端和服務器之間的全部流量,包括所有標題。

+0

Firebug在響應選項卡上沒有顯示任何內容,但通話發送正常,HTTPFox什麼也沒有顯示雖然=/ – Tsundoku

+0

然後檢查您的javascrsipt錯誤控制檯。如果這是跨域請求,那麼您會在那裏收到錯誤消息。 –

+0

這是如何幫助解決問題的答案..這應該是一個評論。\ – Baz1nga

0

如果您使用的其他瀏覽器沒有任何此類工具,那麼您始終可以使用Fiddler,其中顯示系統上所有的HTTP流量。

+0

有用的感謝! =) – Tsundoku

相關問題