В чем разница между http://www.website.com и http://website.com?

Подумайте, я создал веб-сайт и у меня есть такой веб-каталог …

1.index.php

2.ajax.php

В кодировании index.php .. я использую

<html>
....
<base href="http://website.com">
....
....
<script> <!-- using jquery -->
....
$.ajax({
url:'ajax.php',
type:'POST',
data:{ 'variable': value  },
success: function(res){
....
....
}
});
....
</script>

когда я запускаю приведенный выше код, он работает нормально … но когда я добавляю «www» в атрибут href базового элемента, вот так …

<base href="http://www.website.com">

его не работает, почему ?, он показывает ошибку, как это в JavaScript ..

Блокирован перекрестный запрос: одна и та же политика происхождения запрещает чтение удаленного ресурса в http://example.com/ajax.php. Это можно исправить, переместив ресурс в тот же домен или включив CORS.

теперь у меня есть вопрос?

  1. в чем реальная проблема?

  2. Что я должен сделать, чтобы код обоих базовых элементов работал?

  3. что позволяет CORS?

  4. если я включу CORS, кто-нибудь с другого сайта сможет получить доступ к моему сайту?

Буду признателен, если кто-нибудь может мне помочь, заранее спасибо …

0

Решение

в чем разница между http://www.website.com а также http://website.com?

Они имеют разные имена хостов и (технически) разные веб-сайты. Они могут размещать различный контент, но, вероятно, нет.

в чем реальная проблема?

Разные имена хостов имеют разное происхождение. Браузеры не позволяют JavaScript, работающему на странице с одним источником, читать содержимое из другого источника, если разрешение не предоставлено с помощью CORS.

Что я должен сделать, чтобы код обоих базовых элементов работал?

Выберите одно из двух имен хостов, которое будет каноническим. Сконфигурируйте сервер так, чтобы неканонический перенаправлял HTTP 301 на канонический.

Пока вы на это, прекратите использование <base>, Это гораздо сложнее, чем стоит, и почти все хорошее в этом может быть достигнуто с помощью URL-адресов, относящихся к корню сервера (то есть URL-адресов, начинающихся с / персонаж).

что позволяет CORS?

Конфигурирование сервера для отправки заголовков HTTP, которые дают браузеру разрешение делиться данными вашего сайта с другими сайтами.

Увидеть MDN для большего.

если я включу CORS, кто-нибудь с другого сайта сможет получить доступ к моему сайту?

Вы можете указать глобальный доступ или ограничить его определенным происхождением.

3

Другие решения

Ну, в основном, «www.» это поддомен, который технически не совпадает с корневым каталогом. У вас может быть совершенно другой веб-сайт, работающий на поддомене «www.», Хотя большинство хостинг-провайдеров имеют свои DNS-настройки, автоматически перенаправляющие поддомен «www.» в корневую папку (или наоборот). Вы можете сделать это самостоятельно, используя файл .htaccess со следующим содержимым:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector