原生js访问http获取数据的方法

在原生JavaScript中,直接通过浏览器端的JavaScript访问HTTP接口获取数据通常涉及XMLHttpRequest对象或现代的fetch API。

  1. 使用XMLHttpRequest

XMLHttpRequest是一个老旧的API,但在某些情况下仍然很有用。以下是一个简单的例子:

javascrip

var xhr = new XMLHttpRequest();

xhr.open("GET", "https://api.example.com/data", true);

xhr.onreadystatechange = function () {

if (xhr.readyState == 4 && xhr.status == 200)

console.log(xhr.responseText); // 这里是返回的文本数据

};

xhr.send();

  1. 使用fetch API

fetch API是一个更现代、更强大且基于Promise的HTTP请求API。以下是一个使用fetch获取数据的例子:

javascript

fetch('https://api.example.com/data')

.then(response => response.json()) // 或者 response.text() 如果你知道返回的是文本

.then(data => console.log(data)) // 这里是返回的JSON数据

.catch((error) => {

console.error('Error:', error);

});

注意:

由于浏览器的同源策略(Same-Origin Policy),你可能无法直接通过JavaScript从与你的网页不同源的服务器获取数据。为了解决这个问题,你可以使用CORS(跨来源资源共享)或JSONP等技术。

在实际项目中,处理HTTP请求时通常会考虑更多的错误处理和边界情况。

如果你正在开发一个单页面应用(SPA)或复杂的Web应用,你可能会考虑使用像Axios或Fetch API的polyfill(如whatwg-fetch)这样的库来更方便地处理HTTP请求。

相关推荐
2501_9209317014 小时前
React Native鸿蒙跨平台采用ScrollView的horizontal属性实现横向滚动实现特色游戏轮播和分类导航
javascript·react native·react.js·游戏·ecmascript·harmonyos
东东51616 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino17 小时前
图片、文件的预览
前端·javascript
2501_9209317018 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
AI老李19 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
方也_arkling19 小时前
Element Plus主题色定制
javascript·sass
2601_9498095919 小时前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter
Up九五小庞19 小时前
开源埋点分析平台 ClkLog 本地部署 + Web JS 埋点测试实战--九五小庞
前端·javascript·开源
摘星编程20 小时前
React Native + OpenHarmony:UniversalLink通用链接
javascript·react native·react.js
qq_1777673720 小时前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos