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, но это не кросс-домен
Если вы получаете доступ к данным из других доменов, вы должны переопределить 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);
}
});