首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

Chrome上xmlHttpRequest的open方法报DOMException

2012-11-03 
Chrome下xmlHttpRequest的open方法报DOMExceptionRT!我贴出我的代码,在IE下各种访问毫无压力.Chrome 版本

Chrome下xmlHttpRequest的open方法报DOMException
RT!我贴出我的代码,在IE下各种访问毫无压力.Chrome 版本 22.0.1229.94 m.

HTML code
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>Login</title></head><script>function createNewRequest(){var HttpRequest = null ;try {//if (window.XMLHttpRequest) { // Mozilla, Safari, ...HttpRequest = new XMLHttpRequest();//} else if (window.ActiveXObject) { // IE//HttpRequest = new ActiveXObject("Microsoft.XMLHTTP");//}if (HttpRequest.overrideMimeType) {// set type accordingly to anticipated content typeif(type.toUpperCase() == "XML")HttpRequest.overrideMimeType('text/xml');elseHttpRequest.overrideMimeType('text/html');}} catch (e) {//showWarnningMessage(errorText, e.message);}return HttpRequest ;}function ajaxCall(urlString,data){var pageRequest = createNewRequest();pageRequest.open('GET', urlString);//pageRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');pageRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");var encodedData = encodeURI(data);//pageRequest.send("");pageRequest.send(encodedData);pageRequest.onreadystatechange=function(){//alert("readyState = " + pageRequest.readyState + "; HTTP Status = " + pageRequest.status);//var returnText = pageRequest.responseText ;if (pageRequest.readyState == 4 && pageRequest.status == 200){document.getElementById("f1").src="http://172.16.5.158:9080/portal/jsp/viewScoreboard.do?id=2015.209";}}}function doSubmit(){ajaxCall("http://172.16.5.158:9080/portal/j_security_check?j_username=admin&j_password=admin","abcd");}</script><body><input type="button" value="Report" onclick="doSubmit()"><iframe style="display:inline" src="" id="f1" name="f1" width=100% height=100%></iframe></body> </html>


[解决办法]
pageRequest.open('GET', urlString);
改成
pageRequest.open('post', urlString);

get方法无需
pageRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");

pageRequest.send(encodedData);
这些

另外注意不要跨域
[解决办法]
var pageRequest = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
pageRequest.open('post', urlString);
pageRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
pageRequest.setRequestHeader('Content-Length',data.length);
pageRequest.setRequestHeader("Connection","close");
pageRequest.send(data);
pageRequest.onreadystatechange=function(){
if (pageRequest.readyState == 4 && pageRequest.status == 200){
document.getElementById("f1").src="http://172.16.5.158:9080/portal/jsp/viewScoreboard.do?id=2015.209";
}
}
[解决办法]
再次提醒,你访问的方法必须是http://172.16.5.158:9080/xxx.htm
不能跨域 不能跨端口
[解决办法]
静态页面也是通过http://172.16.5.152:9080/页面打开的ajax请求http://172.16.5.152:9080/上的资源不算,

但是请求
http://172.16.5.158:9080/【ip地址不一样】
http://172.16.5.152:8008/【端口不一样】

这些的算
[解决办法]
探讨

我在我本地的静态页面上请求172.16.5.152上的东西算不算跨域?因为在这里Open始终失败.


热点排行