我在试着从Symfony获取图像。
/**
* @Route("/provide/image/{filename}")
*/
public function provideImage($filename)
{
$path = 'myimgdir/' . $filename;
$response = new BinaryFileResponse($path);
return $response;
}
当我从Web浏览器本身调用此端点时,目标图像会得到正确处理。但是,当我将此URL设置为img标记(Angular 13应用程序)的“src”属性时,请求失败,返回406。
从浏览器获取
- 请求标头 *
Accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Cookie: SESSION=xxx
Host: xxx
Referer: xxx
sec-ch-ua: "Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
- 响应标头 *
accept-ranges: bytes
Access-Control-Allow-Origin: *
cache-control: max-age=0, must-revalidate, private
connection: close
content-length: 4030
content-type: image/jpeg
date: Thu, 12 Jan 2023 18:12:24 GMT
expires: Thu, 12 Jan 2023 18:12:24 GMT
last-modified: Thu, 12 Jan 2023 18:09:56 GMT
server: nginx/1.23.3
x-powered-by: PHP/7.2.34
从img标记中提取
- 请求标头 *
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Cookie: SESSION=xxx
Host: xxx
If-Modified-Since: Thu, 12 Jan 2023 18:09:56 GMT
sec-ch-ua: "Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
- 响应标头 *
Access-Control-Allow-Origin: *
cache-control: max-age=0, must-revalidate, private
connection: close
content-type: text/html; charset=UTF-8
date: Thu, 12 Jan 2023 18:12:34 GMT
expires: Thu, 12 Jan 2023 18:12:34 GMT
server: nginx/1.23.3
transfer-encoding: chunked
x-powered-by: PHP/7.2.34
这是为什么,我怎样才能使它从我的工作?
**注意:**此项目仍在Symfony 3.4上运行
1条答案
按热度按时间dgsult0t1#
很可能是CORS问题-您可以将以下标题添加到Symfony控制器操作中: