2013-04-24 55 views
1

我需要將存儲在文件中的數字列表放入網頁中。 我用Visual Studio C#編寫了一個Web服務來讀取文件並響應內容。如果我將Web服務的URL放在瀏覽器http:// MyComputer /wcfService3_deploy/RestServiceImpL.svc/json/123中,它將顯示一個json結果:{「JSONDataResult」:「9781770494138」}(文件中只有一個數字)。

現在,我需要從我的頁面調用服務。不幸的是,Web服務與我的網頁位於不同的計算機上,所以我需要使用jsonp和ajax。

當我嘗試通過JavaScript調用Web服務時,它從未獲取到服務。我添加了一個錯誤的參數來調用並報告「[對象對象]錯誤」

function myFunction() { 
var data = "datatext"; 
document.getElementById("response").innerHTML = "In MyFunction"; 
$.ajax({ 
    type : "GET", 
    datatype : "jsonp", 
    url : "http://MyComputer/wcfService3_deploy/RestServiceImpL.svc/json/123?callback=jsonpCallback", 
    crossDomain : "true", 
    jsonpCallback : jsonpCallback(data), 
    success : jsonpCallback(data) 

}); 
/*document.getElementById("response").innerHTML = "AfterAjax";*/ 
}; 



function jsonpCallback(data) { 
     document.getElementById("response").innerHTML =data; 
    }; 

</script> 

<p id="response">Old Text</p> 
<button type="button" onclick="myFunction()">Click Me!</button> 

我知道我有jsonpCallback在這裏的次數太多,而且宣佈的數據作爲一個變量是沒有意義的。將回調放入url與jsonpCallback參數與成功參數之間有什麼區別?如果我不聲明數據,它不會讓我用它作爲參數的參數。如何指定將包含返回結果的變量的名稱?

感謝您的耐心

+0

你可能想從兩個jsonpCallback在$就調用刪除'(數據)' – david 2013-04-24 21:02:27

回答

1

您有:

jsonpCallback : jsonpCallback(data), 
success : jsonpCallback(data) 

要在大衛的評論擴大,回調的設置是說,建立回調時,調用jsonpCallback(數據),並定義「jsonpCallback 「和」成功「作爲該功能的結果。

如果您只是提供了要調用的方法,它會將其作爲函數應用於返回的對象。

它應該是這樣的:

jsonpCallback : jsonpCallback, 
success : jsonpCallback