我拥有一个网站,并且有一些文字信息。
我尝试使用以下内容在HTML5应用程序中显示我的网页,但我没有得到它
<div id=from_server></div>
<script>
$(document).ready(
function ( )
{
$('#from_server').load('http://magician.sdf-eu.org/barebone.html');
});
</script>
我需要使用ajax,因为我需要访问我网站内的php。
答案 0 :(得分:0)
CSRF验证可能会阻止跨域请求。
您可以尝试在请求中明确包含CSRF令牌。我不知道jQuery的load
是否会自动执行此操作,但您当然可以使用$.ajax
执行此操作。
另外,请确保您的服务器设置CSRF cookie
。在某些情况下,它会自动完成,例如当HTML中有form
时。但是,很多时候,您需要明确要求它这样做。
试试这个脚本:
$(document).ready(function (){
var request = $.ajax({
url: 'http://magician.sdf-eu.org/barebone.html',
beforeSend: secureAjaxForCsrf,
type: 'GET'
});
request.done(function(response){
$('#from_server').html(response);
});
function secureAjaxForCsrf(xhr, settings){
var csrftoken = getCookie("csrftoken");
if(!csrfSafeMethod(settings.type)){
xhr.setRequestHeader("X-CSRFToken", csrftoken);
};
}
function csrfSafeMethod(method){
// Returns true if the given method is free of CSRF risk.
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
function getCookie(name){
var cookieValue = null;
if(document.cookie && document.cookie != ""){
var cookies = document.cookie.split(";");
for(var i=0; i<cookies.length; i++){
var cookie = $.trim(cookies[i]);
if(cookie.substring(0, name.length+1) == (name+"=")){
cookieValue = decodeURIComponent(cookie.substring(name.length+1));
break;
};
};
};
return cookieValue;
}
});