У меня есть следующий веб-сервис;
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
Это стандартный стандарт без изменений для декораторов класса.
У меня есть этот метод jQuery;
var webMethod = "http://localhost:54473/Service1.asmx/HelloWorld";
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
url: webMethod,
success: function(msg){ alert(msg.d); },
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
Это действие публикации, потому что позже мне нужно разместить на нем данные.
Когда я выполняю jQuery, я получаю сообщение об ошибке «Нет транспорта».
Следует также упомянуть, что jQuery хранится в простом HTML-файле на моем компьютере, и WebService также работает на моем компьютере.
На HTML-странице нет кода, это просто веб-страница, а не проект ac # или что-то еще.
Кто-нибудь может указать мне правильное направление здесь?
jquery
ajax
web-services
griegs
источник
источник
Ответы:
Если ваша страница jQuery не загружается, возможно,
http://localhost:54473
это связано с тем, что вы пытаетесь сделать междоменный запрос.Обновление 1 Посмотрите на это сообщение в блоге .
Обновление 2 Если это действительно проблема (и я подозреваю, что это так), вы можете проверить JSONP в качестве решения. Вот несколько ссылок, которые могут помочь вам начать:
источник
Добавь это:
jQuery.support.cors = true;
Он включает межсайтовый скриптинг в jQuery (я полагаю, после 1.4x).
Мы использовали действительно старую версию jQuery (1.3.2) и обменяли ее на 1.6.1. Все работало, кроме вызовов .ajax (). Добавление вышеуказанной строки устранило проблему.
источник
У меня была такая же ошибка на странице, и я добавил эти строки:
и это, наконец, работает для меня;) больше нет ошибки в IE9.
источник
Ни один из предложенных ответов полностью не сработал для меня. Мой вариант использования немного отличается (выполнение ajax для получения файла S3 .json в IE9). Установка
jQuery.support.cors = true;
избавилась отNo Transport
ошибки, но я все еще получалPermission denied
ошибки.Что мне помогло, так это использование jQuery-ajaxTransport-XDomainRequest, чтобы заставить IE9 использовать XDomainRequest. Использование этого не требует настройки
jQuery.support.cors = true;
источник
я решаю это с помощью dataType = 'jsonp' вместо dataType = 'json'
источник
У меня тоже возникла эта проблема, и все приведенные выше решения либо не сработали, либо были неприменимы из-за ограничений клиентского веб-сервиса.
Для этого я добавил на свою страницу iframe, который находился на сервере клиента. Поэтому, когда мы публикуем наши данные в iframe, а iframe отправляет их в веб-сервис. Следовательно, междоменная ссылка исключается.
Мы добавили двустороннюю проверку происхождения, чтобы подтверждать только данные авторизованной страницы, размещаемые в и из iframe.
Надеюсь, поможет
источник
Для меня это совсем другая история.
Поскольку эта страница имеет хороший рейтинг в поисковых системах, я должен добавить свой случай и решение здесь.
Я построил
jquery
себя,webpack
выбирая только те модули, которые я использую. Ajax всегда терпит неудачу с сообщением «Нет транспорта» в качестве единственной подсказки.После долгой отладки проблема оказывается
XMLHttpRequest
подключаемойjquery
и не включается по умолчанию.Вы должны явно включить
jquery/src/ajax/xhr
файл, чтобы Ajax работал в браузерах.источник
Я решил это просто, удалив домен из URL-адреса запроса.
источник