jQuery AJAX-запрос блокируется, потому что Cross-Origin
Как получить контент с удаленного URL через AJAX?
jQuery AJAX-запрос блокируется, потому что Cross-Origin
Консольный журнал
Блокировка перекрестного запроса: та же политика происхождения запрещает чтение удаленного ресурса по адресу http://www.dailymotion.com/embed/video/x28j5hv. (Причина: отсутствует заголовок CORS "Access-Control-Allow-Origin").
Блокировка перекрестного запроса: та же политика происхождения запрещает чтение удаленного ресурса по адресу http://www.dailymotion.com/embed/video/x28j5hv. (Причина: запрос CORS не выполнен).
Код
$.ajax({
url: "http://www.dailymotion.com/embed/video/x28j5hv",
type:'GET',
contentType: "html",
crossDomain:true,
success: function(data){
//$('#content').html($(data).html());
var src = $(data).html();
alert(src);
return false;
}
6 ответов
Попробуй использовать JSONP
в вашем вызове Ajax. Это обойдёт ту же Политику происхождения.
http://learn.jquery.com/ajax/working-with-jsonp/
Попробуй пример
$.ajax({
url: "https://api.dailymotion.com/video/x28j5hv?fields=title",
dataType: "jsonp",
success: function( response ) {
console.log( response ); // server response
}
});
Вы ничего не можете сделать на своей стороне (на стороне клиента). Вы не можете включить кросс-доменные вызовы самостоятельно, для источника (dailymotion.com) должна быть включена поддержка COORS.
Единственное, что вы можете сделать, это создать прокси-скрипт на стороне сервера, который сделает это за вас. Используете ли вы какие-либо серверные сценарии в вашем проекте? PHP, Python, ASP.NET и т. Д.? Если это так, вы можете создать серверный сценарий "прокси", который выполняет HTTP-вызов dailymotion и возвращает ответ. Затем вы вызываете этот сценарий из своего кода Javascript, поскольку этот сценарий на стороне сервера находится в том же домене, что и код вашего сценария, COORS не будет проблемой.
Попробуйте с помощью cURL-запроса для междоменного домена.
Если вы работаете через сторонние API или получаете данные через CROSS-DOMAIN, всегда рекомендуется использовать скрипт cURL (на стороне сервера), который является более безопасным.
Я всегда предпочитаю сценарий cURL.
Если источником является сервер, к которому у вас есть доступ, вы можете открыть междоменный доступ для определенной папки (и ее подпапок) с помощью.htaccess
файл, расположенный в соответствующей папке:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
Я решил это, изменив путь к файлу в браузере:
- Вместо того:
c/XAMPP/htdocs/myfile.html
- Я написал:
localhost/myfile.html