Этот парень спас мой день.
http://blogs.microsoft.co.il/blogs/idof/archive/2011/07.aspx
Я собираюсь разместить здесь некоторые его заметки, на случай, если однажды веб-страница умрет.(Я терпеть не могу найти ссылки «Ваш ответ - ЗДЕСЬ», а затем ссылка не работает.)
<behaviors>
<endpointBehaviors>
<behavior name="webSupport">
<webHttp />
<CorsSupport />
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name="CorsSupport" type="WebHttpCors.CorsSupportBehaviorElement, WebHttpCors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
<services>
<service name="Service.JSonService">
<endpoint address="http://localhost:8080" behaviorConfiguration="webSupport” binding="webHttpBinding" contract="Service.IJSonService" />
</service>
</services>
Теперь вам нужно найти его загружаемую библиотеку под названием «WebHttpCors.dll».
Но есть достаточно (выше), чтобы помочь вам Google / Bing ваш путь к разрешению.
Часть, которая бросала меня в цикл (в моем сценарии), заключается в том, что IE работал, но Firefoxне работал.
Моя исходная страница была:
http://localhost:53692/test/WCFCallTestViaJQ14.htm
Итак, мой сервис по адресу:
http://localhost:8002/MyWCFService/MyWCFMethodByWebGet?state=NC&city=Raleigh
Итак, у меня был localhost << - >> localhostтрафик.
**** Но порты были разные.(53692 и 8002) ****
IE был в порядке.Firefox не согласился с этим.
Тогда вы должны помнить, что каждый браузер обрабатывает свои запросы .Send () по-своему (то есть внутри JQUERY).
Теперь все это имеет смысл.
//JavaScript snipplet from JQuery library
if (window.XMLHttpRequest) {
returnObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
returnObject = new ActiveXObject("Microsoft.XMLHTTP");
} else {
msg = "Your browser doesn't support AJAX!";
}
Вот некоторые ключевые слова, фразы, которые я гуглил / переигрывал, что, наконец, привело меня куда-то.ЧТО ДЕЛАЕТ КОД:
Например, он говорит:
Заголовок «Access-Control-Allow-Origin» со значением «*»
Это может или не может быть то, что вы хотите.Возможно, вы захотите лучше контролировать это значение (заголовки) и другие (методы и источники).
Среда разработки - это одно.(Используйте все *, которые вы хотите).
Производство - это что-то другое, вы можете настроить эти * значения на что-то более различающее.Короче говоря, вам нужно понять, что на самом деле делает для вас CORS с точки зрения безопасности, а не просто добавить поведение, которое позволяет все.
allowed-origins: '*'
allowed-headers: '*'
allowed-methods: '*'