Я хотел бы вызвать веб-сервис .net из другого домена, используя только jquery.
Как лучше всего это сделать? и есть ли какие-либо изменения конфигурации, о которых мне нужно знать на веб-сайте, на котором размещена веб-страница?
Причина, по которой я спрашиваю об этом, заключается в том, что я лишь частично контролирую эту область. Так что я могу внести только ограниченные изменения.





Как правило, ответ отрицательный, если вы говорите о веб-службах ASPX (в основном веб-службах, размещенных на сайте ASP.NET).
Это первое попадание в Google при поиске "jquery вызова веб-службы", который должен предоставить вам дополнительную информацию:
http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/ вы используете для размещения веб-службы).
Во-первых, я не совсем уверен, будет ли межсайтовый ajax, реализованный в jquery, работать во всех браузерах (firefox 3) точно так же. Во-вторых, я предполагаю, что вы говорите о веб-службе SOAP. Я бы предпочел не делать этого. Это будет очень сложно реализовать.
Браузер не разрешает вызовы XMLHTTPRequest между доменами в своей конфигурации по умолчанию. Вы можете изменить настройки браузера, чтобы определенные вызовы выполнялись успешно, но это считается плохой практикой.
Для выполнения междоменных запросов вы можете
Используйте локальный сервер в качестве прокси для удаленный сервер
В этом примере для вызова Yahoo! используется локальная веб-служба ASP.NET. Сервис геокодирования
В этом примере показано, как создать мост к фликр через API flickr.
Вот пример:
$.post("CodersWS.asmx/DeleteBook", { id_book: parseInt(currBookID, 10) }, function(res) {
///do something with returned data: res
});
В приведенном выше примере я вызываю веб-службу с именем CodersWS.asmx, а WebMethod внутри нее называется DeleteBook ... Я также передаю параметр с именем id_book.
Также не забудьте добавить этот фрагмент на свой web.config, иначе вы не сможете получить доступ к веб-сервису таким образом:
<system.web>
<webServices>
<protocols>
<add name = "HttpGet"/>
<add name = "HttpPost"/>
</protocols>
</webServices>
</system.web>
Было бы лучше использовать: Jquery.getJSON?
Видеть: JQuery.getJSON
Это поднимает вопрос о том, как выводить данные, совместимые с JSON, с помощью веб-службы или аналогичного механизма.
Используйте атрибут [ScriptService] в веб-сервисе, чтобы разрешить его вызов из клиентского скрипта. По умолчанию будет возвращен JSON - msdn.microsoft.com/en-us/library/…
Используется вместе с JQuery $ .ajax ({}); команда аналогичным образом для вызова веб-службы, например здесь - encosia.com/2008/03/27/… должен делать то, что вам нужно
Я думаю, ваша проблема в том, чтобы сделать перекрестный вызов. Вам необходимо изменить тип данных вашего запроса jQuery на jsonp.
Взгляните на этот ссылка на сайт
+1, могут потребоваться изменения, которые автор запроса не может внести, но будет работать в междоменном режиме
Это клиентский web.config или веб-службы?