2011-05-23 131 views
1

使用jQuery Ajax從本地服務器獲取數據:它適用於IE8,但使用Firefox4會出錯:(僅通過「錯誤」消息輸入錯誤函數)。 Firebug顯示數據正在變得正確。可能是以下錯誤的原因

正在運行的網址是: http://localhost:47092/testajax

的相關jQuery代碼是:

$.ajax(
     { 
      type: "GET", 
      url: "http://localhost/test", 
      processData: true, 
      data: {}, 
      dataType: "json", 
      success: function (data, code, jqx) { 
       console.log(data); 
      }, 
      error: function (jqx, err, ex) { 
       console.log(ex); 
      } 
     } 
    ); 

什麼可以是錯誤的原因是什麼?我正在使用jQuery 1.5.2

另外,我正在使用jQuery.support.cors = true來啓用跨域腳本編寫。

+0

請注意,除非Firebug處於打開狀態,否則'console.log'將不確定。 – Spudley 2011-05-23 11:26:40

+2

域名'localhost'不存在於Internet中^^它只能在本地訪問。 – reporter 2011-05-23 11:28:00

+5

我不認爲任何人都能夠查看您的鏈接測試網站'http:// localhost:47092/testajax' ... – 2011-05-23 11:28:07

回答

6

聽起來就像您遇到了跨站點腳本保護。

http://localhost:47092/testajax 
http://localhost/test 

協議,主機名和端口必須相同。否則,你必須使用像JSONP這樣的解決方案。

+0

我已經使用jQuery.support.cors = true – user705414 2011-05-23 11:31:21

+0

你是正確的,但我想知道jQuery.support.cors = true不適用於Firefox 4 – user705414 2011-05-23 11:39:54

+0

'jQuery.support.cors'是一個只讀屬性 - 你可以不啓用使用它的東西,其目的是功能檢測。你是否在'http:// localhost/test'的服務器端實現了CORS(以及相應的HTTP頭文件)? https://developer.mozilla.org/en/http_access_control – 2011-05-23 11:50:40

0

localhost:47092與localhost不同。在Ajax調用中使用相對URL,而不是絕對的。

相關問題