Приведенный ниже код не работает, когда мой asmx webservice находится в другом домене.Есть ли что-то, чего мне не хватает?
function CallGreet() { $.ajax({ type: "POST", url: "http://test.me/TestWebService.asmx/HelloWorld", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: OnSuccess, error: OnError }); }
Спасибо ...
Вам нужно знать о JSONP
Здесь вы найдете более подробную информацию: Как вызвать внешний веб-сервис с помощью jquery "jsonp"?
Также обратите внимание, что результат jsonp jquery будет таким же, как этот ответ @Craig White: Использование JQuery для выполнения междоменных вызовов Ajax
Я предпочитаю включать файл javsacript, сгенерированный из другого домена, который может дать мне информацию.
<script type="text/javascript" src="http://otherdomain.com/data.php"></script>
вы можете динамически добавить скрипт, подобный этому:
var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'http://otherdomain.com/data.php?×tamp=' + new Date().getTime(); //Added to deter caching (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s);
Ваша проблема - все запросы браузера блокируют межсайтовые запросы.Вам необходимо, чтобы страница находилась на том же сервере, что и сервер, или настроить свой сервер для разрешения межсайтовых запросов.Взгляните на http://www.easywms.com/easywms/?q=en/how-send-cross-site-request-ajax
Браузер не позволяет JavaScript выполнять вызовы ajax в другой домен.
Что вы можете сделать, так это создать локальный файл asp в своем домене, который считывает данные в другом домене и вызывает его.