CORS POST Requests not working - OPTIONS (Pedido incorreto) - A origem não é permitida
Estou tendo muitos problemas para obter uma solicitação POST entre domínios para acertar um controlador Api na última versão beta 2.
Chrome (e outros navegadores) cuspir:
OPTIONS http://api.hybridwebapp.com/api/values 400 (Bad Request)
POST http://api.hybridwebapp.com/api/values 404 (Not Found)
Pode estar relacionadoesse problema mas eu apliquei essa solução e várias outras correções como o web.configadições aqui
Eu tenho batido minha cabeça com isso por um tempo, então eu criei uma solução para reproduzir o problema exatamente.
Carregar o aplicativo da web, haverá dois botões um para obter um para o POST e a resposta aparecerá ao lado do botão. GET funciona. Não é possível obter o POST para retornar com sucesso.
Eu sou capaz de obter uma dica sobre a causa do Fiddler, mas não faz sentido, porque se você olhar para a resposta inclui o domínio no cabeçalho Access-Control-Allow-Origin:
Há uma pasta na solução chamada "ConfigurationScreenshots" com algumas capturas de tela da configuração do IIS (ligações do site) e configurações de propriedades do projeto para facilitar o máximo possível a ajuda para mim :)
EDIT: Não se esqueça de adicionar esta entrada ao arquivo host (% SystemRoot% \ system32 \ drivers \ etc):
127.0.0.1 hybridwebapp.com api.hybridwebapp.com
** STATUS: ** Parece que alguns navegadores, como o Chrome, permitem que eu continue com o POST, independentemente da mensagem de erro na resposta OPTIONS (enquanto outros, como o Firefox, não). Mas eu não considero isso resolvido.
Veja as screenshots do Fidler do pedido OPTIONS que ele
Access-Control-Allow-Origin:http://hybridwebapp.com
E ainda o erro:
A origemhttp://hybridwebapp.com não é permitido
Isso é completamente contraditório, é como se ignorasse o cabeçalho.