Сбой запроса CORS на мобильных пользовательских агентах - PullRequest
1 голос
/ 11 декабря 2019

Опишите ошибку Я настроил прокси-сервер в любом месте cors, который не возвращает данные с конечной точки API, которую я запрашиваю на мобильном телефоне

Я использую Axios. получить запрос, и при использовании страницы на мобильном телефоне или мобильных адаптивных окнах в консолях разработчика (Chrome, Safari режимы реагирования) отсутствует ответ Access-Control-Allow-Methods.

Воспроизвести - Попробуйте запросить обратный прокси-сервер cors с помощью команды axios.get. - Затем попробуйте на мобильном телефоне или в браузерном окне. - Убедитесь, что контент не загружается, но загружается на рабочий стол



const getData = async () => {
    try {
        axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
        const request = `https://proxy.com/https://site.data/`
        const response = await axios.get(request )
        return extractData(response.data)
    } catch (e) {
        return null;
    }
};

Ожидаемое поведение Данные должны загружаться, так какзагрузка с разрешением рабочего стола (и в режиме рабочего стола в браузерах мобильных телефонов)

Среда: - Axios Version [0.19.0] - ОС: [OS 12.1.0, Android 9, OSX 10.13.4] - Браузер [Chrome, Safari, MobileChrome, MobileSafari] - Версия браузера [Chrome 80, Safari 14] - Дополнительные версии библиотеки [Реакция 16.12.0]

Дополнительный контекст / Снимки экрана

Response Header in Desktop:

Access-Control-Allow-Methods: GET, PUT, POST, DELETE, HEAD, OPTIONS
access-control-allow-origin: *
access-control-expose-headers: content-type,x-ua-compatible,cache-control,pragma,expires,date,p3p,strict-transport-security,content-security-policy,content-encoding,transfer-encoding,server,x-xss-protection,x-frame-options,x-content-type-options,alt-svc,connection,x-final-url,access-control-allow-origin
alt-svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
cache-control: no-cache, no-store, max-age=0, must-revalidate
Connection: keep-alive
content-encoding: br
content-security-policy: script-src 'report-sample' 'nonce-I127VgEm+tBFy2YSgJXSIg' 'unsafe-inline';object-src 'none';base-uri 'self';report-uri /_/PhotosUi/cspreport;worker-src 'self', script-src 'nonce-I127VgEm+tBFy2YSgJXSIg' 'self' 'unsafe-eval' https://apis.google.com https://ssl.gstatic.com https://www.google.com https://www.gstatic.com https://www.google-analytics.com https://s.ytimg.com https://www.googleapis.com https://youtube.com https://youtube.googleapis.com https://maps.googleapis.com https://maps.gstatic.com https://www.googletagmanager.com https://www.googleadservices.com https://payments.google.com https://www.googleapis.com/appsmarket/v2/installedApps/;report-uri /_/PhotosUi/cspreport
Content-Type: text/html; charset=utf-8
Date: Tue, 10 Dec 2019 12:29:55 GMT
expires: Mon, 01 Jan 1990 00:00:00 GMT
p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
pragma: no-cache
Server: nginx/1.14.0 (Ubuntu)
strict-transport-security: max-age=31536000
Transfer-Encoding: chunked
x-content-type-options: nosniff
X-CORS-Redirect-1: 302 https://photos.google.com/share/
x-final-url: https://photos.google.com/share/
x-frame-options: SAMEORIGIN
x-request-url: https://photos.app.goo.gl/
x-ua-compatible: IE=edge
x-xss-protection: 0


Request Header in Desktop:

Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-CA,en;q=0.9
Connection: keep-alive
DNT: 1
Host: proxy.site.com
Origin: https://example.com
Referer: https://example.com/album/testing
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.70 Safari/537.36

Request Header in Mobile:

access-control-allow-origin: *
access-control-expose-headers: content-type,x-ua-compatible,cache-control,pragma,expires,date,content-security-policy,content-encoding,server,x-xss-protection,x-frame-options,x-content-type-options,alt-svc,connection,transfer-encoding,x-final-url,access-control-allow-origin
alt-svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000
cache-control: no-cache, no-store, max-age=0, must-revalidate
Connection: keep-alive
content-encoding: gzip
content-security-policy: script-src 'nonce-fjOgq7jgU4Dsl9ogIcxhZw' 'unsafe-inline';object-src 'self';base-uri 'self';report-uri /_/DurableDeepLinkUi/cspreport;worker-src 'self'
Content-Type: text/html; charset=utf-8
Date: Tue, 10 Dec 2019 12:33:43 GMT
expires: Mon, 01 Jan 1990 00:00:00 GMT
pragma: no-cache
Server: nginx/1.14.0 (Ubuntu)
Transfer-Encoding: chunked
x-content-type-options: nosniff
x-final-url: https://photos.app.goo.gl/
x-frame-options: SAMEORIGIN
x-request-url: https://photos.app.goo.gl/
x-ua-compatible: IE=edge
x-xss-protection: 0


Response Header in Mobile:

Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-CA,en;q=0.9
Connection: keep-alive
DNT: 1
Host: proxy.site.com
Origin: https://example.com
Referer: https://example.com/album/testing
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1
...