Можем ли мы получить доступ к службе WCF через https с помощью вызова Jquery $ .ajax () в междоменном домене? - PullRequest
5 голосов
/ 28 декабря 2011

Я добавил SSL для обоих приложений.

Допустим, https:// www.a.com и https:// www.b.com. https:// www.a.com получает доступ к услуге wcf с https:// www.b.com через $.ajax() вызов. Я также использую jsonp для этой функции. Когда эти приложения не https , они работают нормально. Но вызов $.ajax() завершается неудачно, когда я делаю https . Это дает «Ошибка внутреннего сервера» в firebug на этот $.ajax() вызов.

Можем ли мы сделать это в безопасном режиме?

Ответы [ 5 ]

5 голосов
/ 25 марта 2014

Предложение 1:

Использование CORS (перекрестное совместное использование ресурсов)

Во время предварительного запроса ,

вы должны увидеть следующие два заголовка:

  • Access-Control-Request-Method

  • Access-Control-Request-Headers

Эти заголовки запроса запрашивают у сервера разрешения на выполнение фактического запроса.

Ваш предполётный ответ должен подтвердить эти заголовки , чтобы действительный запрос работал .

Например, предположим, что браузер отправляет запрос со следующими заголовками:

  • Происхождение: http://yourdomain.com

  • Метод запроса-контроля доступа: POST

  • Заголовки запросов контроля доступа: X-Custom-Header

Ваш сервер должен затем ответить следующими заголовками:

  • Контроль доступа-Разрешить происхождение: http://yourdomain.com

  • Методы контроля доступа-разрешения: GET, POST

  • Access-Control-Allow-Headers: X-заказ Header

Ссылка

Предложение 2:

Использование JSON-P и промежуточной страницы:

  • создать промежуточную страницу, которая отправляет запрос http на страницу https и возвращает результат JSON-P
  • Если промежуточная страница находится в том же домене , используйте ее напрямую , иначе сделайте междоменный запрос ajax и используйте JSON-P

Ссылка

1 голос
/ 19 марта 2014

Мы можем получить доступ к службе WCF через https, используя jquery ajax-вызов в кросс-домене, но мы получаем предупреждение безопасности, когда такой вызов поднят.

Согласно Политика того же происхождения мы можем получить доступесли это тот же домен и тот же протокол.

Подробнее см. Политика того же происхождения

1 голос
/ 28 декабря 2011

Похоже, вам гораздо лучше, если вы просто читаете / записываете данные JSON через ваше зашифрованное (https) соединение. Пусть WCF обрабатывает все, что вы хотите в конечных точках, но взаимодействует с простыми сообщениями JSON. ИМХО ...

0 голосов
/ 25 марта 2014

Я бы просто создал службу на хост-сервере, которая принимает запрос от клиента.Служба затем сделает междоменный запрос и отправит данные обратно клиенту.Таким образом, вам не нужно менять конфигурацию.

0 голосов
/ 25 марта 2014

В запросах jsonp не должно быть ничего особенного в https против http.Внутренняя ошибка сервера обычно указывает на то, что веб-сервер выдал исключение.Что такое код состояния (500)?

Если это 500, я хотел бы узнать, можете ли вы выявить какие-либо различия в запросах с помощью отладчика или firebug chrome.

...