我为我做了一个网络服务,它在本地计算机上运行良好。
现在我在iis上部署我的项目,并希望从服务部署的URL
中使用该服务服务在该网址上正常工作
但是当我在json中使用该url时无法正常工作。这是我的代码,它工作正常
$.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);
}
});
这对我来说很好,但是当我使用已部署的webservice url时,这个url是 http://localhost:1234/WebService.asmx/getlinqdata
getlinqdata是我调用的函数
thax
答案 0 :(得分:1)
您可能会从一个域(URL)转到另一个域(即跨域),您不能按原样使用JSON,而是必须依赖JSONP。
您将查看以下参考资料。希望它为你工作
http://www.codeproject.com/KB/aspnet/Cross_Domain_Call.aspx
http://www.wictorwilen.se/Post/SharePoint-Online-and-External-Data-using-JSONP.aspx
答案 1 :(得分:0)
根据您的意见,这是我的答案:
1234是端口号而非域名。如果您知道您的问题是本地问题,那么您在1234端口(而不是80)上测试您的网站,并且在生产服务器上您在端口3456上运行它,为什么不将Web服务URL更改为适当的端口你部署到生产?
还有一个建议:
Eval is evil。如果您有更好的方法like parseJSON.
,请不要使用它var myObject = $.parseJSON(jsonText.d);