前端原生API调用方法

目录

一、前端API调用

[1. XMLHttpRequest (XHR)](#1. XMLHttpRequest (XHR))

[2. Fetch API](#2. Fetch API)

二、建立后端供前端调用API

三、调用API

xhr调用的

fetch调用的

控制台

四、页面跳转(重定向)


一、前端API调用

1. XMLHttpRequest (XHR)

XMLHttpRequest 是一个较老但仍然广泛使用的 API,用于发送异步 HTTP 请求。它在现代浏览器中得到了很好的支持,并且可以处理各种类型的请求(GET、POST 等)。

示例代码

javascript 复制代码
function xhrApi() {
    const xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://localhost:11451/hello', true);
    xhr.onload = function () {
        if (xhr.status === 200) {
            console.log(xhr.responseText);
        } else {
            console.error('Request failed.  Returned status of ' + xhr.status);
        }
    };
    xhr.send();
}

2. Fetch API

**fetch**是现代浏览器内置的一个基于 Promise 的 HTTP 请求库,用于发送网络请求。它提供了更简洁和现代的 API,并且支持更多的功能,如自动解析 JSON 数据等。

示例代码

javascript 复制代码
function fetchApi() {
    fetch('http://localhost:11451/hello')
        .then(response => {
            if (!response.ok) {
                throw new Error('Network response was not ok');
            }
            return response.text();
        })
        .then(data => {
            console.log(data);
        })
        .catch(error => {
            console.error('There was a problem with the fetch operation:', error);
        });
}

二、建立后端供前端调用API

建立一个后端项目先

然后我们修改一下配置文件

java 复制代码
server:
  port: 11451

然后写一下controller

java 复制代码
package com.xingzai.apitest.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author 无敌の星仔<br>
 * 2024/10/13 下午4:33
 */
@RestController
@Slf4j
public class ApiController {
    @CrossOrigin("*")
    @GetMapping("/hello")
    public String hello() {
        log.info("被调用了");
        return "Hello world";
    }
}

主启动类

java 复制代码
package com.xingzai.apitest;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ApiTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(ApiTestApplication.class, args);
    }

}

然后我们启动。

三、调用API

xhr调用的

fetch调用的

几乎就没有区别

控制台

我们看看控制台

所以我们原生的调用就有这么两种办法,而且大家在平时用F12的时候也没少看到,我们网络的筛选方案里就有个Fetch/XHR

所以我们开发的时候也是注意是给新浏览器用的还是给全部浏览器用的

四、页面跳转(重定向)

这个其实很简单,我们想要重定向直接修改window.location.href这个属性就可以了

相关推荐
denlaku几秒前
JDK 22 新特性详解
java·开发语言
余槐i6 分钟前
开虚拟线程后接口反而更慢:JDK 21 synchronized 锁住载体线程的排查
java·spring boot·redis·mysql·性能优化
虚无的纽扣13 分钟前
【Linux】线程同步:条件不满足时,线程该怎么等
linux·服务器·1024程序员节
思码梁田1 小时前
CSS 浏览器厂商前缀:从「写 5 遍」到现代自动化兼容
前端·css·css3·border-radius·1024程序员节·box-shadow·厂商前缀
Sirens.1 小时前
网络通信基础:IP、端口、协议分层与数据封装
java·网络·网络协议·tcp/ip·java-ee·1024程序员节
Ruiery1 小时前
Linux 6.6内核并发与同步(一):原子操作与内存屏障 — 内核同步的硬件底座
linux·运维·服务器·1024程序员节
我是大猴子1 小时前
py how claude work项目分析
运维·服务器·windows·1024程序员节
Bug收容所1 小时前
Vue+JS Day3
前端·javascript·vue.js·前端框架·1024程序员节
H.莓飛1 小时前
【数据结构】排序_OJ题(二):划分与选择
linux·服务器·c语言·开发语言·数据结构·visual studio