XMLHttpRequest; Запросы перекрестного происхождения поддерживаются только для схем протоколов: http, data, chrome, chrome-extension, https, chrome-extension-resource

Когда я пытаюсь сделать вызов ajax, я получаю сообщение об ошибке Chrome ниже.

XMLHttpRequest не может загрузить javascript:;. Запросы между источниками поддерживаются только для схем протоколов: http, data, chrome, chrome-extension, https, chrome-extension-resource.

Вот код:

$.ajax({
    type: "POST",
    data: {pvalue : pid},
    cache: false,
    url: "xxx.in/yy/ajax.php",
    success: function(data)
    {
      $modal.find('.edit-content').html(data);
    }

2 ответа

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

Вам нужно загружать веб-страницу через веб-сервер, а не через файловую систему, если вы хотите использовать ajax-запросы.

Вот некоторые другие вопросы и ответы об этой конкретной ошибке, которые все указывают на неверный тип URL, используемый для загрузки страницы.

"Запросы перекрестного происхождения поддерживаются только для HTTP". ошибка при загрузке локального файла

React.js: пример в учебнике не работает

Запросы между источниками поддерживаются только для HTTP, но это не кросс-домен

http://answers.playcanvas.com/questions/833/cannot-load-model-due-to-cross-origin-request-being-blocked

https://groups.google.com/forum/

Если вы получаете доступ к данным из других доменов, вы должны переопределить Chrome Same-origin Policy, Для этого вы должны указать dataType: 'jsonp'

$.ajax({
    type: "POST",
    dataType: 'jsonp',
    data: {pvalue : pid},
    cache: false,
    url: "xxx.in/yy/ajax.php",
    success: function(data)
    {
      $modal.find('.edit-content').html(data);
    }
});

Если файл ajax.php на вашем сервере (тот, на котором вы работаете сейчас), вы можете просто указать имя файла в url раздел (как показано ниже).

$.ajax({
    type: "POST",
    data: {pvalue : pid},
    cache: false,
    url: "ajax.php",
    success: function(data)
    {
      $modal.find('.edit-content').html(data);
    }
});
Другие вопросы по тегам