Причина, по которой вы не можете прочитать заголовок на JavaScript, но вы можете просмотреть его в консоли разработчика, - это потому, что для запросов CORS вам нужно разрешить клиенту читать заголовок.
Требуется сервер для отправки этого заголовка:
Access-Control-Expose-Headers:X-Total-Results
Чтобы ответить на ваш вопрос в комментариях, Access-Control-Allow-Headers
не разрешает подстановочные знаки в соответствии с W3 Spec
Я бы предложил переустановить VS 2008 SP1. Вы установили другую VS (например, VS Express) в то же время? Известно, что это вызывает помехи в существующей установке VS.
Вы можете попробовать проверить версии компилятора и компоновщика, запустив cl.exe
и link.exe
из командной строки Visual Studio.
Также может случиться так, что библиотека-нарушитель была построена с другим параметром «Набор инструментов платформы» (в Свойствах проекта-> Общие).
Мне удалось исправить эту проблему в VS 2015 с помощью следующих шагов.
[1] (Не уверен, что это необходимо) Отключить / GL во всех компонентах
C / C ++> Оптимизация> Оптимизация всей программы> Нет
В файлы .VCXPROJ это:
<WholeProgramOptimization>false</WholeProgramOptimization>
Выключить / LTCG
Библиотекарь> Общие> Генерация временного кода связи
<LinkTimeCodeGeneration>false</LinkTimeCodeGeneration>
[2 ] Более важный шаг, убедитесь, что все компоненты рисуются из одних и тех же каталогов. Мой основной EXE-файл использовал:
Release Include
$(WindowsSdkDir)include\um;$(WindowsSdkDir)include\shared;$(UniversalCRT_IncludePath);$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include
Release Library
$(VC_LibraryPath_x86);$(WindowsSdk_71A_LibraryPath_x86);
.lib использовал разные каталоги (неправильно):
Release Include
$(VC_IncludePath);$(WindowsSDK_IncludePath);
Release Library
$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86
Я изменил каталоги .lib так, чтобы они были такими же, как .exe, и ошибка компиляции исчезла.
Два способа:
1. Обновите Sp1 для сборки библиотеки
2. Пожалуйста, проверьте свою сборку, чтобы убедиться, что Оптимизация всей программы отключена. Для статического проекта lib перейдите на страницу свойств и измените «Свойства конфигурации-> C / C ++ -> Оптимизация-> Оптимизация всей программы» на «Нет».
Проверьте, есть ли у вас .pch
(предварительно скомпилированный заголовок) где-нибудь в каталоге проекта и сотрите его. затем перестройте проект.
Лучший способ получить чистую сборку - это использовать Build-> Clean или Build-> Rebuild All
Edit: Еще одна вещь, которую вы можете попробовать, которая в значительной степени безопасна, - это воссоздать файл проекта в новом каталоге из только исходные файлы.
Если это сработает, вы можете постепенно сравнивать старый проект с новым, чтобы увидеть, что не так.