我試圖通過使用jQuery .ajax(或.get,.post等)的http訪問第三方api。該API駐留在我的機器在使用JQuery訪問跨域數據服務/ API
http://localhost:7777/server/<method>?<args>
服務器具有的方法堆棧查詢其OLAP服務器,如登錄(返回登錄鍵與其他方法使用),數據庫(列出的數據庫服務器),立方體,尺寸等等等等
例如
要登錄到服務器
http://localhost:7777/server/login?user=admin&password=21232f297a57a5a743894a0e4a801fc3
如果我將其輸入到瀏覽器地址欄中,然後獲取正確的數據。
但是,我想製作一個小型網頁來測試這些調用,並認爲我應該可以使用jQuery創建獲取並返回到瀏覽器的數據。
繼承人我的代碼
<html>
<head>
<title>Palo Test Report</title>
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript" language="javascript">
function calculate(){
$.ajax({
type:"GET",
url:"http://localhost:7777/server/login?user=admin&password=21232f297a57a5a743894a0e4a801fc3&callback=?",
success: function(data,textStatus){
alert(data + ":" + textStatus);
}
,
error: function(request,errorStatus,errorThrown){
alert("Error:" + errorThrown);
}
});
}
</script>
</head>
<body>
<div>Sample Palo Report #1</div>
<input type="button" value="Calculate" onclick="calculate();" />
</body>
</html>
方法進入到服務器並點擊了成功回調。但是,數據參數是一個空字符串。
我讀了一些關於通過ajax進行跨域訪問的問題,看起來像是服務運行在不同的端口上可能會發生什麼,儘管我對「成功」標誌感到有點驚訝。另一個奇怪的是,如果我在IIS中創建一個新的虛擬目錄並將文件放在那裏,我用空的errorThrown參數打錯誤回調。
service/api返回簡單的字符串不是json所以getJSON不起作用。
正在嘗試使用jQuery嗎?
我有一個解決方法,但它的相當醜陋!預先
由於
ģ
這不再是事實。大多數人會認爲'JSONP'和'CORS'都是Ajax調用。兩者都需要來自服務器的支持。 – hippietrail 2012-09-03 10:16:27
@hippietrail新增 – 2012-09-10 20:23:13