关于AJAX请求JSON数据(解决responseText空的问题)

硬件笔记——HDMI接口 HDMI可以同时传输视频信号、音频信号和控制信号。其中高速信号有四组:从Data TX到Data RX有3组差分数据信号(TMDS_DATA0~2)和一组差分时钟信号(TMDS_CLOCK)。以及若干低速线。脚编号信号名称信号类型功能说明1热插拔检测连接状态检测。接收端通过此引脚向源端发送高电平信号,通知其已连接并可以开始读取EDID。2UTILITY车载用途悬空3TMDS数据通道2差分信号正极,用于传输视频像素、音频和数据包。4TMDS数据2屏蔽。 阅读详情

AJAX请求服务器提供的JSON数据

大家在前后端交互时,前台网页会和后台服务器以及数据库进行交互。感觉比较基础的就是将从后台获取的数据显示到页面中。最近,刚开始使用AJAX处理数据交互,遇到一些问题,并且解决了,做以下分享。

众所周知,AJAX的核心是XMLHttpRequest对象。它完成了对数据的请求以及获取。见下:

var xhr = new XMLHttpRequest();
var url = "要访问的服务器地址的数据页面";
xhr.open("get",url,true);
xhr.onreadystatechange = function(){
    if(xhr.readyState === 4 && xhr.status === 200){
        alert(this.responseText);
        var myObject = JSON.parse(this.responseText);
    }
};
xhr.send(null);

代码的含义大家估计都懂,看看MDN,看看书都明白。我说下自己遇到的问题,在对服务器的数据访问时,总是获取不到responseText的值,不是null,是空白。代码很简单,含义很明了,就是不知道为什么获取不到服务器提供给我的json数据。

我访问的url可以在本机浏览器访问到数据页面。显示的是JSON数据,可就是无法通过
xhr对象获取数据。网上的答案大多是代码出现问题,导致无法获取。甚至有些朋友说是浏览器的问题(ff不支持?),更可笑的是有人把ture改为false(他还成功了?),异步和同步不都是访问数据吗?更改后对responseText的值没有任何影响。本质上是涉及到了同源策略的问题。

简单来说:两个页面的协议、域名、端口号都得相同才能互相通信。

我的页面ip地址明显和服务器的ip地址不同,所以是不同源的访问。服务器本身是拒绝的。在浏览器的检查窗口进行查看,network(网络)那里请求是成功的,显示200,对啊我可以访问到数据页面,就是获取不到数据,所以显示获取到的字节是0字节。我赶紧去联系后台姐姐,她竟然没有把自己的访问权限设置为*。

要想实现获取数据,必须解决同源问题。js中的跨域方案很多很多,一种比较简单而且公认的标准方案是CORS。

后台服务器需要在url的响应头中添加如下代码:

Access-Control-Allow-Origin:*

不同后台语言格式不同,大家自行解决。本人本机测试用的node.js,服务器那边的java程序没太注意。

//node.js设置响应头
    res.setHeader('Access-Control-Allow-Origin', '*');

后台设置好后,我这边的请求它就很快响应,并且获取到了指定url的JSON数据,返回给了xhr对象的responseText。接下来就可以对数据进行随意蹂躏了。

一般的用法是将数据导入到表格吧,才疏学浅。

直接显示

<div id="list"></div>
document.getElementById('list').innerHTML = 'xhr.responseText';

表格
大概思想是,将json数据反序列化为js对象,然后将对象中的json数据一一对应到表格中,少不了循环,少不了动态添加td。

//假设头结构已就位<thead></thead>
<tbody id="staff-body">
</tbody>
<script>
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "http://xxx.xxx.x.xxx:9999/User/userList", true);
    xhr.send(null);
    xhr.onreadystatechange = function (){
    if (xhr.readyState === 4 && xhr.status === 200) {
        var _json = JSON.parse(xhr.responseText);
        var tbody = document.getElementById('staff-body');
        for (var i = 0; i < _json.length; i++){
            var h = _json[i];
            var html = "";
            var _tr = document.createElement('tr');
            html += "<td class='alt'>" + h.address + "</td>";
            html += "<td class='alt'>" + h.email + "</td>";
            html += "<td class='alt'>" + h.id + "</td>";
            html += "<td class='alt'>" + h.log_name + "</td>";
            html += "<td class='alt'>" + h.name + "</td>";
            html += "<td class='alt'>" + h.password + "</td>";
            html += "<td class='alt'>" + h.sex + "</td>";
            html += "<td class='alt'>" + h.tel + "</td>";
            html += "<td class='alt'>" + h.email + "</td>";
            html += "<td class='alt'>" + h.birthday + "</td>";
            html += "<td class='alt'>" + h.last_time + "</td>";
            html += "<td class='alt'>" + h.last_ip + "</td>";
            html += "<td class='alt'><button>更新</button></td>";
            html += "<td class='alt'><button>删除</button></td>";

            _tr.innerHTML = html;
            tbody.appendChild(_tr);
            }
        }
    };
</script>

代码非常粗略,而且可能会有错,感觉自己也没讲太清楚,有问题希望大家可以和我沟通沟通,这样我就会学到很多东西。虽然jq,框架、模板等请求获取数据很easy,可额偏爱原生js。

机器学习之多种算法优缺点总结及优化方法 一、无监督算法: 1、聚类算法:Kmeans 2、关联规则算法:Apriori 二、有监督算法 1、分类算法 决策树(Decision Tree) 支持向量机(SVM) K近邻(kNN,k-NearestNeighbor) 朴素贝叶斯 逻辑回归 2、回归算法 线性回归 多项式回归 3、集成算法 a、bagging(Bootstrapped Aggregation) 随机森林 ... 阅读详情

相关推荐

ThingsBoard实战指南:RPC命令下发与设备交互详解

本文深入解析了ThingsBoard平台中RPC命令下发的核心机制与实战应用。通过对比客户端与服务端RPC模式,详细阐述了从仪表盘控件配置到设备端Python代码响应的完整双向交互流程,并提供了常见问题排查与进阶优化技巧,帮助开发者构建可靠、实时的物联网设备控制系统。

weixin_29168153的博客 213

xhr对象的属性

原生ajax请求,XMLHttpRequest()实例化对象xhr的相关属性学习

weixin_48764380的博客 2331

LAMMPS+Phonopy计算声子色散曲线

机器学习训练完势函数之后,需要对加以验证。对于晶体而言,色散曲线是其衡量计算是否准确的最重要标准,当然,还有能量,比热,RDF等性质。

qq_68842798的博客 3462

XHR-XMLHttpRequest

XMLHttpRequest 对象是 Ajax 的关键。它从 2000 年 7 月发布的 IE 5.5 开始可用,但是直到 2005 年 Ajax 和 Web 2.0 变得流行起来它都没有完全被发觉。 XMLHttpRequest (XHR) 是一个可以用 JavaScript,JScript,VBScript 和其他 Web 浏览器脚本语言传输和操作 XML 数据,以及使用 HTTP 从 Web 服务器上在网页客户端和服务端之间建立一个独立连接通道的 API。 调用 XMLHttpRequest 返回

顺其自然~专栏 2219

Palantir解密:“本体”的建模逻辑及其扩展方向

上一篇重点从对现实世界建模的角度探讨了“本体”在数字化架构中的核心意义。这里借Palantir的“本体”概念、解析Palantir只是起点,目标旨在以他山之石攻玉——探索数字世界的底层架构逻辑,最终为构建自主体系提供思考。Palantir以“本体论”为核心的建模方案是否代表终极答案,不宜过早下结论,但其思路值得深入剖析。

SZSDQJC的博客 2635

5步搞定ABB机器人RobotStudio与S7-1500PLC的Profinet通讯(附PLCSIM调试技巧)

本文详细介绍了如何利用RobotStudio与TIA Portal软件,结合PLCSIM Advanced仿真器,在零硬件条件下实现ABB机器人与西门子S7-1500 PLC之间的Profinet通讯虚拟调试。通过五个核心步骤,从环境搭建、网络配置、信号映射到联合仿真与高级调试,帮助工程师在项目前期高效验证逻辑、压缩现场调试周期,并掌握实用的PLCSIM调试技巧。

weixin_29188043的博客 505

AJAX的使用

ajax全称为Asynchronous javascript and xml,就是异步的js和xml;目的是通过ajax可以在浏览器中向服务器发送异步请求,而最大的优势就是可以整体页面无刷新的获取数据;ajax不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式(JS中的一种API + 发送的http请求)。例如:百度关键词搜索、用户名的唯一性验证、新闻的异步加载XML是一种可扩展标记语言,用来被设计传输和存储数据;

hzg_hou的博客 2115

VS2019手动添加bits/stdc++.h全指南(附解决‘无法打开源文件‘错误)

本文详细介绍了在Visual Studio 2019中手动配置C++万能头文件bits/stdc++.h的完整方法,解决常见的'无法打开源文件'错误。通过分析GCC与MSVC编译器生态差异,提供了纯手动创建和MinGW移植两种可靠方案,并给出详细的步骤、常见错误排查及最佳实践建议,帮助开发者高效配置竞赛开发环境。

weixin_29011395的博客 547

XHR的responseType属性(下载文件)

最近有个需求,从服务器下载数据表格,存储到本地,过程中发现excel保存不成功,最后发现是responseType未设置正确。 responseType是什么? XMLHttpRequest.responseType 属性是一个枚举类型的属性,设置返回响应数据的类型。 当将responseType设置为一个特定的类型时,你需要确保服务器所返回的类型和你所设置的返回值类型是兼容的。 responseType支持以下几种值: key 含义 “” responseType 为空字符串时,采用默.

岂曰无衣 5529

用友u8服务器优化,用友U8erp软件运行的性能优化方案图文教程

今天一定要给大家分享一下用友U8erp软件运行的性能优化方案图文教程,以下方案来自用友软件官方维护工程师反馈在在处理客户问题的时候,有一类问题较为挠头,就是诸如用友U8服务器效率低下的问题。比如用友U8运行慢,卡住等,我们暂先不提用友U8软件代码、脚本层面本身的性能提升问题,我们只是基于现有用友U8软件版本,在客户现有环境下排查用友U8软件运行的性能瓶颈,并采取一定的技术手段进行性能调校。本文将推...

weixin_39882870的博客 5306

基于Requests的百度图片搜索爬取技术详解

本文介绍了一种高效获取百度图片搜索数据的混合请求爬虫技术。该技术结合HTML解析与JSON API调用,通过分析百度图片搜索的网络通信模式,实现了首页HTML解析获取初始参数、后续页面直接调用JSON接口的双重机制。系统采用模块化设计,包含Cookies解析、智能请求分发、数据提取、图片下载等核心模块,支持自定义关键词和爬取页数配置。关键技术包括动态参数管理、正则表达式提取、JSON数据处理等,相比传统爬虫方法具有效率高、资源消耗低的优势,为计算机视觉研究提供了可靠的大规模图片数据采集方案。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 420

Ajax中responseText解析json格式数据

方法一: xhr = new XMLHttpRequest() // 创建XMLHttpRequest对象    var data = xhr.responseText; // 获取响应数据    var json=JSON.parse(data); // 使用JSON.parse()进行解析:使用JSON对象的静态方法parse(),将字符串解析...

qq_41091999的博客 6474

AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 8252

执行ajax时什么情况会执行error的回调函数

执行ajax时什么情况会执行error的回调函数

cxws110的博客 2924

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

php ajax查询,jQuery的AJAX查询PHP脚本

Testing AJAXfunction init() {$("#form1").submit(submitForm);}function submitForm() {var paramValue = $("#param_input").val();$.ajax({type: "GET",url: 'http//xxx.edu/xxx/autocomplete.php',data: {query:...

weixin_42549496的博客 347

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Ajax请求,客户端拿到后台返回的responseText为空的问题

1.学习Ajax请求参数传递过程中,本地搭建了一台node服务器,在app.js中创建客户端请求路由为: app.post('/post',(req,res)=>{ //服务器拿到客户端的请求参数,再响应给客户端 res.send(req.body) }); 一般项目中路由与入口文件是单独分离开的(这里为了单纯的学习); 2.index.html <form...

beibei_niao的博客 5026

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ajax中response与responseText的区别

ajax中response与responseText的区别1.response与responseText的区别 1.response与responseText的区别 1.1、responseType属性:在客户端通过代码告诉请求代理对象,服务端响应给我们的数据类型。 MDN链接: responseType的值可参考该处 1.2、下面举个例子: var xhr = new XMLHttpRequest(); xhr.open('GET', '15test.php'); xh

小屁鸿的博客 5257

【前端系列】AJAX请求

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 1万+

json应用,responseText,responseXml,XMLhttpRequest和ajax开发框架

AJAX开发框架 AJAX实质上也是遵循Request/Server模式,所以这个框架基本的流程是: 对象初始化 发送请求 服务器接收 服务器返回 客户端接收 修改客户端页面内容。 只不过这个过程是异步的。 A  初始化XMLHttpRequest对象 function   createXmlHttpRequest(){    var xmlHttp;    try{

Qiluluwawa的专栏 6016

解决Ajax获取文本数据为空的问题

今天学习了Ajax,想自己封装一个函数,结果第一步就难住了,我无论怎样都获取不到文本文件或者Json里的值,难受的找了半天bug,百度了好久,(不是很懂后台代码,用文本文件保存的数据),找不到适合我的解决方案。关键是控制台没有报错,就是alert();出来是个空字符串...... 但是,重点来了,我猛然发现会不会是变量作用域的问题!! 我在外面定义的xmlDoc=xmlhttp.respons...

qq_42381297的博客 3343

ajax请求和解析json数据

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),是一种用于创建快速动态网页的技术一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。 1、jQueryajax()方法用于执行 AJAX(异步 HTTP)请求。所有的 jQuery AJAX 方法...

菜鸟踩坑 2037

原生ajax请求返回的responseText数据处理

原生ajax请求 let xhr = new XMLHttpRequest(); xhr.open('Post','xxxxxxurl'); xhr.send(); xhr.onReadystatechange = function() { if(xhr.readystate==4){ if(xhr.state>200&&xhr.state<300){ console.log(response) } }

weixin_44707050的博客 1271

Ajax的响应信息ResponseText和ResponseXML

用Jquery写一了一段小代码提交ajax请求道servlet,返回选定省份的所有城市,实现省市和城市的联动效果,本来觉得一段简单的小代码很容易搞定,结果一直运行不正确,用firebug调试js脚本之后,发现返回的data为document类型,而我代码中需要返回的是字符串类型。 在网络监控中发现返回的响应信息中response的类型为xml然后就一直报错...

a961550527的博客 518

ajax开发框架和XMLhttpRequest、responseText、responseXml和JSON的应用

1 AJAX开发框架 2 A 初始化XMLHttpRequest对象 3 B指定响应处理函数 4 C发出HTTP请求 5 D处理服务器返回的信息 6 数据格式提要 6 优点 6 缺点 7 解析 JSON AJAX开发框架 AJAX实质上也是遵循Request/Server模式,所以这个框架基本的流程是: 对象初始化 发送请求

Elina_1992的专栏 819

Ajax 请求 servlet 传回来的 xhr.responseText是一个json字符串,但打印出的是html文件内容

Ajax 请求 servlet 传回来的 xhr.responseText是一个json字符串,但打印出的是html文件内容

weixin_56684524的博客 611
上一篇: JavaScript中的作用域(链)和闭包(一)
下一篇: JavaScript中关于Array对象的方法特性总结
DoubleSRZee
博客等级 码龄10年 7粉丝 41原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值