Я пытаюсь сгенерировать запрос POST / PUT, где я загружаю файл в URL.Бэкэнд-скрипт написан на PHP с использованием Lumen / Laravel 5.4;для внешнего интерфейса я использую Angular 7 с HttpClient , чтобы отправить файл через formdata
.
Теперь, если я отправляю любые нормальные данные (простой текст, а не файл) черезPOST это успешно, но если я загружаю файл запрос, я получаю следующую ошибку:
IN FIREFOX : запрос POST не генерируется после предполетного полета(OPTIONS
) запрос и показывает общую ошибку CORS:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://storage.local/upload. (Reason: CORS request did not succeed).[Learn More]
IN CHROME : запрос POST генерируется, но ответне показывается и выдает net::ERR_CONNECTION_ABORTED
Угловой код:
let form = new FormData();
form.append("material", mmfile);
return this.http.post(environment.storage_server, form, {
headers: new HttpHeaders().append("authorization", token),
}).subscribe( event => {
console.log(event)
}, error => {
console.log(error);
}, () =>{
console.log("done");
})
Заголовки в PHP Скрипт:
header("Access-Control-Allow-Origin", "*")
header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
header("Access-Control-Allow-Credentials", "true")
header("Access-Control-Allow-Headers", "Origin, Content-Type, Authorization, Content-Length, X-Requested-With, Host, Accept-Encoding, Referer, Accept, Content-Disposition, Content-Range, Content-Disposition, Content-Description")
header("Access-Control-Max-Age", "86400");
С уважением
PS: Я пишу после попытки решить эту проблему в течение 6 часов, поэтому, возможно, я пропустил несколько вещей.Не стесняйтесь редактировать или запросить любую информацию.
РЕДАКТИРОВАТЬ:
Заголовки, возвращенные в OPTIONS
HTTP/1.0 200 OK
Date: Tue, 11 Dec 2018 12:02:20 GMT
Server: Apache/2.4.29 (Ubuntu)
Cache-Control: no-cache, private
Access-Control-Allow-Origin: http://localhost:4200
Access-Control-Allow-Methods: POST
Access-Control-Allow-Headers: AUTHORIZATION
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF
Заголовки, отправленные на OPTIONS
:
Host: storage.local
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: POST
Access-Control-Request-Headers: authorization
Origin: http://localhost:4200
Connection: keep-alive