Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
php:cors [2023/09/12 11:10] werwolf [Пример использования Править] |
php:cors [2023/09/12 11:12] (текущий) werwolf [Соотношение CORS и JSONP Править] |
||
|---|---|---|---|
| Строка 32: | Строка 32: | ||
| </code> | </code> | ||
| - | Если в ответе [[:wiki:%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5)|сервера]] отсутствует данная строка, то [[:wiki:%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80|браузер]], поддерживающий [[:wiki:%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F|технологию]] CORS, вернёт [[:wiki:%D0%9A%D0%BE%D0%B4_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8|код ошибки]] вместо данных. | + | Если в ответе сервера отсутствует данная строка, то браузер, поддерживающий технологию CORS, вернёт код ошибки вместо данных. |
| - | В случае, если [[:wiki:%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5)|сервер]] хочет разрешить доступ для страниц с любого [[:wiki:%D0%94%D0%BE%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B8%D0%BC%D1%8F|домена]], он может указать в ответе: | + | В случае, если сервер хочет разрешить доступ для страниц с любого домена, он может указать в ответе: |
| <code php> | <code php> | ||
| Строка 40: | Строка 40: | ||
| </code> | </code> | ||
| - | Если [[:wiki:%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5)|сервер]] хочет разрешить доступ более чем одному [[:wiki:%D0%94%D0%BE%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B8%D0%BC%D1%8F|домену]], то в ответе [[:wiki:%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5)|сервера]] должно быть по одной строчке Access-Control-Allow-Origin для каждого [[:wiki:%D0%94%D0%BE%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B8%D0%BC%D1%8F|домена]]. | + | Если сервер хочет разрешить доступ более чем одному домену, то в ответе сервера должно быть по одной строчке Access-Control-Allow-Origin для каждого домена. |
| <code php> | <code php> | ||
| Строка 48: | Строка 48: | ||
| </code> | </code> | ||
| - | На практике чаще используется запись из нескольких [[:wiki:%D0%94%D0%BE%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B8%D0%BC%D1%8F|доменов]], разделенных [[:wiki:%D0%9F%D1%80%D0%BE%D0%B1%D0%B5%D0%BB|пробелом]]<sup>[[#cite_note-1|[1]]]</sup>: | + | На практике чаще используется запись из нескольких доменов, разделенных пробелом: |
| <code> | <code> | ||
| Строка 56: | Строка 56: | ||
| ===== Соотношение CORS и JSONP Править ===== | ===== Соотношение CORS и JSONP Править ===== | ||
| - | Технология CORS может быть использована как более современная и надёжная альтернатива [[:wiki:JSONP|JSONP]], так как позволяет использовать все преимущества [[:wiki:XMLHttpRequest|XMLHttpRequest]], и в отличие от JSONP, не является уязвимой для [[:wiki:%D0%92%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_SQL-%D0%BA%D0%BE%D0%B4%D0%B0|SQL-инъекции]] | + | Технология CORS может быть использована как более современная и надёжная альтернатива JSONP, так как позволяет использовать все преимущества XMLHttpRequest, и в отличие от JSONP, не является уязвимой для SQL-инъекции. С другой стороны, технология CORS требует специальной поддержки в коде браузеров, а JSONP от этого не зависит. |
| - | + | ||
| - | .mw-parser-output .ts-fix-template{white-space:nowrap}.mw-parser-output .ts-fix-error{font-size:inherit}@media screen{.mw-parser-output .ts-fix-text{border:1px solid #a2a9b1;box-decoration-break:clone;margin:0 -0.1em;padding:0 0.1em;transition:background 0.1s}.mw-parser-output :hover .ts-fix-text{background:#fee7e6}}@media screen and (hover:hover){.mw-parser-output .ts-fix-comment,.mw-parser-output .ts-fix-commented>a:not(:hover){border-bottom:1px dotted;text-decoration:none}} | + | |
| - | + | ||
| - | <sup>[//[[:wiki:%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8|источник не указан 775 дней]]//]</sup>. С другой стороны, технология CORS требует специальной поддержки в коде [[:wiki:%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80|браузеров]], а [[:wiki:JSONP|JSONP]] от этого не зависит. | + | |