js http 协议get的用法?

砖厂码农 2016-08-10 08:36:28
1. 通过浏览器地址栏请求数据:

http://ip:端口/a?x=1&y=1

2. js 请求代码:
var xmlHttpRequest = new XMLHttpRequest();

xmlHttpRequest.onreadystatechange = handle_change();

var url = "http://ip:端口/a?x=1&y=1";

xmlHttpRequest.open('GET',url,true);

xmlHttpRequest.send(null);

function handle_change() {
if(xmlHttpRequest.readyState == 4 &&
xmlHttpRequest.status == 200){
alert(xmlHttpRequest.responseText);
}
}


为什么第一种方法可行,第二种方法就不行了呢?
ps :服务器端返回的数据是 json格式的
...全文
251 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2016-08-11
  • 打赏
  • 举报
回复
引用 3 楼 luo222 的回复:
@jslang, @crying_boy 感谢你们的回答,问题依然没有解决
肯定是跨域了,没有权限。浏览器直接访问地址和ajax访问地址不一样,ajax需要同源,浏览器直接访问不需要
砖厂码农 2016-08-11
  • 打赏
  • 举报
回复
@jslang, @crying_boy 感谢你们的回答,问题依然没有解决
  • 打赏
  • 举报
回复
楼上说得有道理,内核不同的浏览器,创建AJAX的方法目前还不统一。楼主的代码在IE里可能出问题。
可以用下面的兼容浏览器的写法:
try {
if (window.ActiveXObject) {
for (var i = 5; i; i–) {
try {
if (i == 2) {
xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
} else {
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP." + i + ".0");
xmlhttp_request.setRequestHeader("Content - Type", "text / xml");
xmlhttp_request.setRequestHeader("Charset", "gb2312");
}
break;
} catch (e) {
xmlhttp_request = false;
}
}
} else if (window.XMLHttpRequest) {
xmlhttp_request = new XMLHttpRequest();
if (xmlhttp_request.overrideMimeType) {
xmlhttp_request.overrideMimeType("text / xml");
}
}
} catch (e) {
xmlhttp_request = false;
}
bigbird_561 2016-08-11
  • 打赏
  • 举报
回复
你的浏览器是IE还是其他的?
  • 打赏
  • 举报
回复
function handle_change() {
if(xmlHttpRequest.readyState == 4 &&
xmlHttpRequest.status == 200){
alert(xmlHttpRequest.responseText);
}
}
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.onreadystatechange = handle_change;
var url = "http://ip:端口/a?x=1&y=1";
xmlHttpRequest.open('GET',url,true);
xmlHttpRequest.send(null);

直接执行,和在一个函数体内定义是不同的。最好一律养成先声明后使用的习惯。
泡泡鱼_ 2016-08-10
  • 打赏
  • 举报
回复
xmlHttpRequest.onreadystatechange = handle_change; 只是指定处理函数,不用加()。
天际的海浪 2016-08-10
  • 打赏
  • 举报
回复
xmlHttpRequest.onreadystatechange = handle_change;//设置事件时不要加括号

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧