Questo problema è menzionato in stackoverflow già una dozzina di volte, ma ho un problema diverso.Chrome che dice No header 'Access-Control-Allow-Origin', ma l'intestazione è lì
Chrome esegue prima una chiamata "OPZIONI" per ottenere le intestazioni. Come puoi vedere, le intestazioni corrette sono lì.
Per qualche ragione, Chrome non si accorge l'intestazione e annulla la richiesta effettiva nello stesso modo che sarebbe se l'intestazione non c'era affatto.
la pagina in realtà rende tre chiamate e curiosamente, uno di loro lavora.
Quindi la domanda è, quando l'intestazione è davvero lì, perché Chrome non la rispetta? Cosa posso fare per eseguire il debug?
Aggiornamento
Ho provato ad aggiungere Access-Control-Allow-Methods
così ora la risposta colpo di testa di opzioni call include queste intestazioni di risposta:
Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Methods:POST, GET, OPTIONS
Access-Control-Allow-Origin:*
Il risultato è lo stesso.
Impostazione delle intestazioni sul lato server
ho impostato le intestazioni sul lato server a ogni richiesta (in Global.asax.cs Application_BeginRequest)
Response.Headers.Add("Access-Control-Allow-Origin", "*");
Response.Headers.Add("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
Response.Headers.Add("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
Dopo aver esaminato con Fiddler
Ho esaminato la richiesta e la risposta non elaborate e ho trovato qualcosa di sorprendente: l'errore è un semplice errore HTTP 500 dall'appl icazione. Probabilmente perché l'errore HTTP 500 non contiene le intestazioni corrette, Chrome non mostra l'errore restituito ma mostra l'errore relativo all'intestazione.
risposta
Quindi, in conclusione, se Chrome dà dice No 'Access-Control-Allow-Origin' header
potrebbe in realtà nascondere un errore HTTP 500. Questo può essere determinato controllando la richiesta e la risposta in Fiddler.
E il codice ... dov'è il codice ?? – Hackerman
Dovrebbe esserci anche un'intestazione 'Access-Control-Allow-Methods'. Non lo vedo nello screenshot. – monsur
@RobertRozas Grazie. Questo problema riguarda il motivo per cui Chrome agisce come fa, quindi cerco di non includere il codice che dovrebbe distogliere l'attenzione dal problema che sto cercando di capire. Ma posso postare le richieste/risposte non elaborate, se necessario? –