Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2011, 23:15   #11
Hippos
 
Регистрация: 19.01.2011
Сообщений: 7
По умолчанию

Для тех, кому интересно решение проблемы.
Я рассмотрела 2 способа: это CORS и JSONP. Использование любой из этих технологий решает вопрос.
Я остановилась на CORS, просто потому, что надо было сделать побыстрее, а тут это делается в 3 строчки буквально.
Для разрешения кросс-доменных запросов из self-hosted WCF сервиса необходимо в начале вызываемого метода поместить следующий код (в моем тестовом сервисе это метод Hello).

Код:
    
public string Hello ( string name )
    {
//разрешает доступ для всех доменов; если надо разрешить определенные домены, то передаем их имена через запятую во 2 параметр вместо *
      WebOperationContext.Current.OutgoingResponse.Headers.Add ( "Access-Control-Allow-Origin", "*" );
//разрешает выполнение GET запроса; если надо еще POST, то опять же через запятую добавляем во 2 параметр
      WebOperationContext.Current.OutgoingResponse.Headers.Add ( "Access-Control-Allow-Methods", "GET" );
//определяет необходимо ли требовать передачу credentials при выполнении данного метода; в моем случае они не нужны
      WebOperationContext.Current.OutgoingResponse.Headers.Add ( "Access-Control-Allow-Credentials", "false" );

//ну и далее код метода
    }
Это работает в Chrome и Safari. В Opera и IE не пробовала. Они мне без надобности пока что.

Последний раз редактировалось Hippos; 24.01.2011 в 23:21.
Hippos вне форума Ответить с цитированием
Старый 05.02.2013, 05:23   #12
pacify
Новичок
Джуниор
 
Регистрация: 05.02.2013
Сообщений: 1
Сообщение

Цитата:
Сообщение от Hippos Посмотреть сообщение
Добрый день
Пытаюсь обратиться к WCF сервису из javascript с помощью XmlHttpRequest.
Вот пример кода. Тут все просто:
Код:
        var req = new XMLHttpRequest();
        req.onreadystatechange = OnReadyState;

        function Test() {                         
            req.open('GET', 'http://localhost:87/helloto/olka', true);
            req.send(null);
        }
В IE работает, в Chrome не работает. То есть req.status = Error: INVALID_STATE_ERR: DOM EXCEPTION 11 после выполнения req.open, в консоли пишет "Failed to load resource", далее по приходу в OnReadyState req.status=0.
Извините, что отвечаю с большой задержкой - случайно наткнулся на ваш форум. Я столкнулся с похожей проблемой, ответ нашёл на StackOverflow.
Мой код такой:
Код:
var req = null;
try {
  req = new XMLHttpRequest();
}
catch(err) {} // see advice at http://stackoverflow.com/questions/4500741/suppress-chrome-failed-to-load-resource-messages-in-console

function loadXMLConfig(url)
{
  req.open("GET", url, true);
  req.onreadystatechange = function (e) {
    try { // Важно!
      // только при состоянии "complete"
      if (req.readyState == 4) {
        // для статуса "OK"
        if (req.status == 200) {
            // обработка ответа
            var xml = req.responseXML.documentElement;
            alert(req.responseText);
        }
        else {
          console.log("Cannot load file");
        }
      }
    }
    catch( e ) {
      console.log("Error");
    }
  }
  req.send(null);
}
pacify вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как исправить ошибку "chacheManager error: Writing index data failed!" spravka Помощь студентам 3 07.11.2010 01:42
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
Ошибка "Cannot load driver" zallza Общие вопросы Delphi 2 25.03.2010 21:21
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04