2011-11-26 68 views
2

我爲我做了一個web服務,它在本地計算機上工作正常。使用json調用遠程webservice

現在我在IIS上部署我的項目,要使用該服務從服務部署的URL

服務工作是在這個網址

罰款,但是當我使用的URL在JSON不工作。這裏是我的代碼,它工作正常

$.ajax({ 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     url: "WebService.asmx/getlinqdata", 
     data: '{}', 
     dataType: "json", 
     success: function (jsonText) { 

      var myObject = eval(jsonText.d); 

      for (var i = 0; i < myObject.length; i++) { 
       $('#main').append('<p>' + myObject[i].Id + '</p>'); 
       $('#main').append('<p>' + myObject[i].Name + '</p>'); 
       $('#main').append('<p>' + myObject[i].Day + '</p>'); 
       $('#main').append('<p>' + myObject[i].Month + '</p>'); 
       $('#main').append('<p>' + myObject[i].Year + '</p>'); 
       $('#main').append('<br/>'); 
      } 


     }, 
     error: function (msg) { 
      alert("Error: " + msg.d); 
     } 
    }); 

這個工作對我很好,但是當我使用部署Web服務地址,這個地址是 http://localhost:1234/WebService.asmx/getlinqdata

getlinqdata是我的函數調用

thax

+0

工作你需要完整的網址是什麼?像:url:「localhost:1234/WebService.asmx/getlinqdata」, –

+0

我使用它但不工作 –

+0

您的IIS應用程序池是否可以訪問您的數據庫?喜歡:http://stackoverflow.com/questions/2951684/asp-net-mvc2-getjson-jquery-windows-7-64bit-iis –

回答

0

這是我的回答根據您的意見:

1234是一個端口號不是域名。如果您知道您的問題是在本地在端口1234(而不是在80)上測試您的網站,並且在生產服務器上您在端口3456上運行它,那麼爲什麼不只是在將Web服務URL更改爲適當的端口時你部署到生產?

一個建議:

Eval is evil。當你有一個更好的方法like parseJSON.

var myObject = $.parseJSON(jsonText.d); 
+0

我搜索了很多,發現問題。它是當我們從跨域獲取數據,然後使用jsonp。任何想法... –