cabeçalhos CORS não adicionados no Apache

3

Estou trabalhando nesse assunto há dias. Eu sou um desenvolvedor e meu conhecimento dessas coisas é muito limitado, ainda não há ninguém disponível nesta empresa para me ajudar com esse problema. Isso realmente precisa ser resolvido, pois está ficando um problema de bloqueio.

Estamos executando um AS / 400 com uma instalação do Apache para implantar serviços REST. Não conheço muitos detalhes técnicos, mas os relatórios de informação "Apache server <servername> - Apache/2.4.2 (IBM i)" .

O problema é CORS: ao usar um PUT / DELETE, uma solicitação de OPÇÕES de comprovação é enviada ao servidor. A resposta retorna um 200 OK , mas não retorna um cabeçalho CORS como Access-Control-Allow-Origin * . Por causa disso (eu suponho) a solicitação real não é executada e o navegador retorna um erro de CORS:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

Os serviços da web são configurados para retornar esse cabeçalho, mas não é possível retornar isso para uma solicitação OPTIONS.

Eu tentei configurar o Apache para sempre retornar este cabeçalho, mas ele não funciona. Não importa qual cabeçalho eu adicione, ele não está sendo retornado para o navegador.

Meu httpd.conf:

LoadModule mod_ibm_lwi /QSYS.LIB/QHTTPSVR.LIB/QLWIIHSMOD.SRVPGM
HotBackup Off
KeepAlive Off
DocumentRoot /www/WS_REST_BE/htdocs
AddLanguage en .en
LogMaint logs/error_log 7 0
LogFormat "%h %T %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Listen *:10043
<Location />
  AllowOverride All
  Require all granted
Header set Access-Control-Allow-Origin "*"
</Location>
LoadModule was_ap20_module /QSYS.LIB/QHTTPSVR.LIB/QSVTAP24.SRVPGM
WebSpherePluginConfig /www/WS_REST_BE/conf/ias-plugin-cfg.xml
<LwiProfile WS_REST_BE>
  LwiAssignUserID WEBSBEPRD
  LwiAutostartOption StartEnd
  LwiStartJobQueue QHTTPSVR/QZHBHTTP HTTPWWW
</LwiProfile>
AddCharset UTF-8 .html .js
AddDefaultCharset utf-8

Eu já tentei definir o cabeçalho em lugares diferentes na configuração, mas isso simplesmente não funciona. A documentação da IBM diz claramente que mod_headers é suportado (e deve ser ativado).

Espero que alguém aqui possa me guiar na direção certa para resolver esse problema.

Observação: se eu precisar fornecer mais informações, fique à vontade para perguntar!

    
por Bv202 20.07.2015 / 08:14

1 resposta

0

Eu mesmo desenvolvo serviços REST, mas implementei os cabeçalhos CORS na resposta com interceptores em JavaEE. Sua mensagem de erro informa

No 'Access-Control-Allow-Origin' header is present on the requested resource.

, que faz referência à solicitação do POST / DELETE. Tente adicionar os cabeçalhos CORS às respostas POST / DELETE.

Veja como referência: link

Tanto quanto eu entendo, o Apache não deve ser o problema, mas os serviços REST. Veja também: link

    
por 23.07.2015 / 11:08