Как вызвать веб-службу asmx из другого сайта на JS?

Рейтинг: 0Ответов: 1Опубликовано: 07.02.2015

В общем, проблема в следующем: есть веб-служба с некоторыми методами (они работают). Например, отправка сообщений на почту. Я опубликовал ее на свой рабочий домен в подкатегорию (lr.ind.by/utils)/. Хочу вызвать метод на js из страницы html отправкой ajax запроса.

$.ajax({
        type: 'POST',
        url: "http://lr.ind.by/utils/remontsokna.asmx?op=SendM",
        data: '{"name":"aaaa", "mail":"aasasdffg", "phone":"6546464654"}',
        contentType: 'application/json; charset=UTF-8',
        dataType: 'json',
        async: false,
        success: function (result) {
            alert("ok");
        },
        error: function (result) {
            alert('failure');
        }
    });

Выдает ошибку. В чем проблема?

Обновление

В консоли пишет 2 ошибки:

1-я: 405 ошибка

2-я: no-access-origin ...

Ответы

▲ 1Принят

У вас идет кросс-доменный запрос, как я понимаю. Поэтому в методе необходимо установить заголовок ответа Access-Control-Allow-Origin со значением *(тогда с любого домена возможно будет воспользоваться этим методом) или список разрешенных доменов.

Подробнее можно прочитать тут.

Сам же заголовок устанавливается легко - Response.AddHeader("Access-Control-Allow-Origin", "*")