javascript连接到网站代码不起作用
下面是我的javascript代码,它每10秒ping Google一次,并显示与html MonitorInformation元素的连接状态。但是,当我单击要调试的html文件时,MonitorInformation元素中显示的信息总是“正在连接…等待”。我已经调试了一段时间了,但还是搞不懂。你知道我的代码有什么问题吗 Html代码:javascript连接到网站代码不起作用,javascript,ajax,Javascript,Ajax,下面是我的javascript代码,它每10秒ping Google一次,并显示与html MonitorInformation元素的连接状态。但是,当我单击要调试的html文件时,MonitorInformation元素中显示的信息总是“正在连接…等待”。我已经调试了一段时间了,但还是搞不懂。你知道我的代码有什么问题吗 Html代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script src="M
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="Monitor.js" type="text/javascript"></script>
<title>Web Site Monitor</title>
</head>
<body onload="setup()">
<div id="MonitorInformation">Connecting...wait</div>
</body>
</html>
编辑1:使用JSON修复我的问题
function setup() {
window.setInterval(PingWebSite, (10 * 1000));
}
function PingWebSite() {
var http_request = new XMLHttpRequest();
http_request.open("GET", "http://www.google.com", true);
http_request.send(null);
http_request.onreadystatechange = function() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
MonitorInformation.innerText = "Connection ok";
alert("ok");
} else {
MonitorInformation.innerText = "Connection fail";
alert("fail");
}
http_request = null;
}
};
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="Monitor.js" type="text/javascript"></script>
<title>Web Site Monitor</title>
</head>
<body onload="setup()">
<div id="MonitorInformation">Connecting...wait</div>
</body>
</html>
函数设置(){
window.setInterval(ping网站,(10*1000));
}
功能网站(){
var http_request=new XMLHttpRequest();
http_请求。打开(“获取”http://www.google.com“,对);
http_请求发送(空);
http_request.onreadystatechange=函数(){
如果(http_request.readyState==4){
如果(http_request.status==200){
MonitorInformation.innerText=“连接正常”;
警报(“正常”);
}否则{
MonitorInformation.innerText=“连接失败”;
警报(“失败”);
}
http_请求=null;
}
};
}
网站监视器
连接…等等
提前感谢,,
George您不能跨您无权访问AFAIK的域XHR。您不能跨您无权访问AFAIK的域XHR。您不能连接到URL之外的站点。除非你的代码在google.com域名上,否则它不会工作 这是一个名为“同源策略”的浏览器安全项目
如果你想进行这样的跨站点调用,你必须使用JSONP,因为它允许你这样做。你不能连接到URL之外的站点。除非你的代码在google.com域名上,否则它不会工作 这是一个名为“同源策略”的浏览器安全项目
如果你想做这样的跨站点调用,你必须使用JSONP,因为它允许你这么做。你可以使用隐藏的iFrame来绕过跨域限制。一个快速入门的示例: (HTML代码段)
您可以使用隐藏的iFrame来绕过跨域限制。一个快速入门的示例: (HTML代码段)
可能是你忘了一个分号吗?例如:…body onload=“setup();”…可能是您忘了在那里使用分号吗?例如:…body onload=“setup();”…我很惊讶。我无法使用javascript代码从另一个站点获取页面并与我的站点匹配?感谢soulscratch,我已使用JSON修复了此问题,请查看我的修复代码好吗?(我已经测试过函数的工作原理,但是像你这样的大师的评论让我更加自信。:-)请参考我代码的编辑1部分。我很惊讶。我无法使用javascript代码从另一个站点获取页面并与我的站点匹配?感谢soulscratch,我已使用JSON修复了此问题,请查看我的修复代码好吗?(我已经测试了功能工作,但是像你这样的大师的评论让我更加自信。:-)请参考编辑我代码的1部分。谢谢AutomatedTester,我已经按照你的建议解决了这个问题,你能回顾一下我的固定代码吗?(我已经测试了功能工作,但是像你这样的大师的评论让我更加自信。:-)请参考编辑我代码的1部分。谢谢AutomatedTester,我已经按照你的建议解决了这个问题,你能回顾一下我的固定代码吗?(我已经测试了函数的工作原理,但是来自像你这样的大师的评论让我更加自信。:-)请参考我的代码的编辑1部分。JSON不起作用,你需要使用JSONP,它只有在你使用的服务提供它的情况下才起作用。我对FlySwat感到困惑,但我在编辑1部分发布的代码使用JSON是有效的。有什么意见吗?JSON不起作用,你需要使用JSONP,只有当你正在使用的服务提供JSONP时,JSONP才会起作用。我对FlySwat感到困惑,但我在编辑1部分发布的代码使用JSON是有效的。有什么意见吗?谢谢FlySwat!我正在从wiki pedia()学习跨站点安全策略,我对这句话感到困惑——“该策略允许在源于同一站点的页面上运行的脚本访问彼此的方法和属性”,我对(1)在页面上运行意味着在客户端浏览器上运行javascript或其他脚本感到困惑?(2) 什么是“彼此的方法和属性”?我正在访问URL而不是像DIV的innerText属性那样的访问属性。如果您能澄清,我将不胜感激。:-)谢谢FlySwat!我正在从wiki pedia()学习跨站点安全策略,我对这句话感到困惑——“该策略允许在源于同一站点的页面上运行的脚本访问彼此的方法和属性”,我对(1)在页面上运行意味着在客户端浏览器上运行javascript或其他脚本感到困惑?(2) 什么是“彼此的方法和属性”?我正在访问URL而不是像DIV的innerText属性那样的访问属性。如果您能澄清,我将不胜感激。:-)
function setup() {
window.setInterval(PingWebSite, (10 * 1000));
}
function PingWebSite() {
var http_request = new XMLHttpRequest();
http_request.open("GET", "http://www.google.com", true);
http_request.send(null);
http_request.onreadystatechange = function() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
MonitorInformation.innerText = "Connection ok";
alert("ok");
} else {
MonitorInformation.innerText = "Connection fail";
alert("fail");
}
http_request = null;
}
};
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="Monitor.js" type="text/javascript"></script>
<title>Web Site Monitor</title>
</head>
<body onload="setup()">
<div id="MonitorInformation">Connecting...wait</div>
</body>
</html>
<body>
<div style="display: none;">
<iframe id='hiddenFrame'></iframe>
</div>
</body>
function setup()
{
var iFrame = document.getElementById('hiddenFrame');
var changeEvent = function ()
{
loading.innerText = "Service is Available";
}
// IE
iFrame.onload = changeEvent;
// Firefox
iFrame.onreadystatechange = changeEvent;
setInterval(PingWebSite, (10 * 1000));
}
function PingWebSite() {
var iFrame = document.getElementById('hiddenFrame');
iFrame.src = 'http://www.google.com';
}