2011-11-26 70 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。任何想法... –