2011-05-27 208 views
1

我想要做一個ajax在我的網頁之一使用jQuery調用。jquery阿賈克斯錯誤

它一直進入Error函數。 當我在Firebug中查看控制檯時,狀態似乎沒問題,它顯示200 OK。

當我在firefox窗口中手動啓動url時,我得到了預期的頁面。

但是,當通過jquery ajax調用相同的url時,它總是進入錯誤函數。

以下是我調試 xhr.readyState = 4 xhr.statusText =錯誤 xhr.responseBody =不確定期間獲得的各種值。

難道你們中的任何人都可以幫助我嗎?

function ajax_call(urlString) 
     { 
      ret_val=""; 
      $.ajax 
      (
       { 
        type: "GET", 
        url: urlString, 
        async:false, 
        cache:false, 
        success: function(msg) 
        { 
         ret_val=msg; 
        }, 
        error:function (xhr, textStatus, thrownError) 
        { 
         ret_val=xhr.readyState; 
         alert("textStatus=" +textStatus); 
        } 
       } 
      ); 
      return ret_val; 
     } 
+0

@nunu你所需要的(),我看不出任何問題與javascript代碼本身也許它的問題與你的請求URL ? – 2011-05-27 10:20:17

+0

感謝您的回覆。 但添加 dataType:'text' 沒有幫助。我收到了同樣的錯誤。 而且,我所要求的網址是在同一個域中,實際上php調用正在對同一個php進行,並且具有不同的參數集。 這不是URL的問題,就好像我在另一個Firefox窗口中手動啓動url,請求通過沒有任何問題 你們看到任何其他原因,爲什麼我得到一個AJAX錯誤 – Vikas 2011-05-27 10:36:02

+0

你可以發佈警報( msg)' – 2011-05-27 10:52:33

回答

0

這是我的錯!

在瀏覽器的網址,我一直在尋找 /: 「HTTP://localhost/data.php」

在AJAX調用

,我被賦予絕對URL像 「HTTP調用同一個PHP /xyz.com/data.php「

因此,ajax調用認爲這是一個跨域調用,雖然它是用於相同的php。

通過調用相對URL 「/data.php」解決了這個

+0

是的,這個跨域政策對於網絡新手來說很棘手(就像我一樣),因爲我們看到一個200 OK並且不知道爲什麼它不工作! – Offirmo 2013-03-25 09:23:54

1

看起來你可能會從您的調用返回的明文,看着jQuery的文檔阿賈克斯它說的dataType參數默認爲:

dataType           String 
Default: Intelligent Guess (xml, json, script, or html) 

這似乎在暗示,它不會「猜」的明文,所以也許嘗試添加

dataType: 'text' 

(假設你返回明文 - 如果不是我會刪除此)爲y我們的參數。


而且,只是爲了確認,您所請求的網址是同一服務器發出請求的JavaScript上的,不是嗎?

+0

感謝您的答覆。 但添加 dataType:'text' 沒有幫助。我收到了同樣的錯誤。 而且,我所要求的網址是在同一個域中,實際上php調用正在對同一個php進行,並且具有不同的參數集。 這不是URL的問題,就好像我在另一個Firefox窗口中手動啓動url,請求經過沒有任何問題 你們看到任何其他原因爲什麼我得到一個AJAX錯誤 – Vikas 2011-05-27 10:35:55