JQuery Ajax-запрос от локальной файловой системы (файл Windows: ///) - PullRequest
11 голосов
/ 29 марта 2011

Я пытаюсь выполнить ajax-запрос для получения содержимого "http://localhost/", работающего на Windows Wamp Server.

Сценарий запускается примерно так:

file:///C:/my/path/index.html

Я просто использую стандартный запрос $ .ajax, чтобы попытаться получить содержимое localhost:

$.ajax({
          type: 'GET', 
          url: 'http://localhost/',
          success: function(data) {
            alert('success');
          }, error: function (data) {
            alert('failed');
          }
    });

Я не могу добиться успеха, хотя ... Кажется, это какая-то проблема с локальной файловой системой или что-то в этом роде. Я не слишком уверен.

Ответы [ 3 ]

15 голосов
/ 29 марта 2011

Проблема решена!

Мне просто нужно было добавить этот заголовок в мой файл index.php для http://localhost/

header('Access-Control-Allow-Origin: *');

Спасибо за вашу помощь, ребята!

11 голосов
/ 29 марта 2011

Вы говорите, что скрипт запускается с URL-адреса file:///.Лучше не выполнять AJAX-запросы от file URL-адресов, поскольку они обрабатываются непоследовательно.Например, Chrome полностью их запрещает.

Однако ваша большая проблема здесь - это политика того же происхождения: вы можете только делать запросы AJAX на тот же хост, что и сама веб-страница.file:/// и http://localhost являются не одним и тем же хостом (даже если это один и тот же компьютер).

Лучше всего все отключить http://localhost.

3 голосов
/ 29 марта 2011

Это, вероятно, не будет работать, так как браузер будет думать, что это междоменный запрос. Вы получили доступ к файлу через URL-адрес file: //, но пытаетесь получить данные из http://localhost. Попробуйте также получить доступ к исходному файлу из http://localhost, и он, вероятно, начнет работать .

...