Если служба не поддерживает JSONP, которая, вероятно, не поддерживает ASMX, вам нужно создать прокси службы для запуска на локальном веб-сервере. Затем используйте эту локальную службу в качестве посредника, который обходит междоменные ограничения браузера.
Если вы добавили сервисную ссылку на Top2009WS в свой проект ASP.NET, что-то вроде этого может действовать как серверный прокси для GetLines (), например:
[WebMethod]
public Line[] GetLines(int ID) {
var client = new Topp2009WS.Topp2009WSSoapClient();
client.open();
return client.GetLines(ID);
}
Затем вы можете звонить через прокси-сервер на стороне клиента:
$.ajax({
url: 'Service.asmx/GetLines',
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: '{"ID":' + 12345 + '}',
success: function(response) {
// Alerts the first result's "LineName"
alert(response.d[0].LineName);
}
});
См. Этот пост для получения дополнительной информации о использовании jQuery для вызова веб-службы .