控制台提示ajax send出错,我用的是原生JS 5
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AJAX</title>
</head>
<body>
<p>点击获得内容</p>
<input type="button" id="Btn_ajax" value="GET">
<span id="content"></span>
<script type="text/javascript">
window.onload=function(){
var btn=document.getElementById("Btn_ajax");
var content=document.getElementById("content");
var request=null;
if(window.XMLHttpRequest){
request=new XMLHttpRequest();
}else{
request=new ActiveXObject("Microsoft.XMLHTTP");
}
btn.onclick=function(){
request.open('GET','localhost:8080/Ajax/1.txt',true);
request.send();
request.onreadystatechange=function(){
if(request.readyState==4){
if(request.status===200){
content.innerHTML=request.responseText;
}else{
alert("error:"+request.status);
}
}
}
}
}
</script>
<!-- <script src="localhost:8080/ajax/1.txt?callback=showtext"></script> -->
</body>
</html>
chrome的控制台提示是这样的,大概了解是跨域的问题,请问大神们是如何解决的。
我的这个HTML文件是在另一个文件夹里的, 1.txt在服务器的文件夹里,
该如何实现。。。
下面的注释是打算用JSONP的,不会写。。。。 展开
用JSONP方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AJAX</title>
</head>
<body>
<p>点击获得内容</p>
<input type="button" id="Btn_ajax" value="GET">
<span id="content"></span>
<script type="text/javascript">
window.onload=function(){
var btn=document.getElementById("Btn_ajax");
btn.onclick=function(){
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'localhost:8080/Ajax/1.txt?callback=showtext';
document.body.appendChild(script);
}
}
function showtext(responseText) {
var content=document.getElementById("content");
content.innerHTML = responseText;
}
</script>
</body>
</html>
txt
showtext('content in 1.txt');
script.src = 'http://localhost:8080/Ajax/1.txt?callback=showtext';改成这样
你在浏览器地址输入http://localhost:8080/Ajax/1.txt?callback=showtext,如果可以得到内容,就没有问题,跟文件的格式没有关系。