2012-04-04 84 views
0

我想要得到與jquery AJAX的CGI值讀取值。我不能更改CGI的任何設置,因爲它不在我自己的服務器上。jQuery的AJAX:從CGI

所有我知道的CGI是,如果我直接在瀏覽器地址欄中大盤這樣的:

的「http://otherdomain/cgi-bin/getvalue.exe值」

然後我得到一個響應值,即1234,它顯示在一個空白的瀏覽器窗口中。

具有以下AJAX調用i的螢火獲得響應值 - >網絡 - >響應標籤(1234)。但我無法訪問JavaScript中的值。 console.log(數據)只返回「undefinded」。

有沒有辦法趕上與JavaScript中的價值呢?

我想我已經發送Ajax請求的數據類型:「腳本」,因爲密碼(餅乾)必須發送到CGI爲好。如果我選擇dataType:「文本」,cookie中的密碼不會在請求頭中發送。

$.ajax({ 
     type: "GET", 
     url: "http://otherdomain/cgi-bin/getvalue.exe?value", 
     crossDomain: true, 
     cache: true, 
     dataType: "script", 
     success: function(data, textStatus, jqXHR) { 
      console.log(data); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      console.log(errorThrown); 
      console.log(textStatus); 
      console.log(jqXHR);   
     } 
    }); 
+0

dataType屬性是**響應**的預期數據類型,而不是請求。如果將其留空,它將使用「最佳猜測」默認值,jQuery將根據響應的格式嘗試猜測類型。 – 2012-04-04 20:58:57

+0

如果我使用不同的數據類型而不是腳本,則密碼不會發送到服務器。 – user1313691 2012-04-05 04:21:47

+0

如果我coose不同的dataType不是** **腳本的密碼不會發送給服務器。請求頭** Cookie:pwd = xxxx **僅在我選擇ajax調用中的dataType:「script」時發送。 – user1313691 2012-04-05 04:28:11

回答

1

由於same origin policy AJAX不允許跨域請求,除了那些具有JSONP類型的響應。你需要設置代理服務器上使用AJAX,它把請求提交到其他域然後返回它接收到AJAX調用的響應查詢。

+0

我的帶有Access-Control-Allow-Origin的websert anser:*。所以跨域不是問題。 – user1313691 2012-04-05 04:17:52