前端原生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这个属性就可以了

相关推荐
Avan_菜菜2 小时前
AI 能写代码了,为什么我反而开始要求它先写文档?
前端·github·ai编程
爱勇宝6 小时前
鸿蒙生态的下半场:开发者不只要能开发,还要能赚钱
android·前端·程序员
IT_陈寒9 小时前
SpringBoot这个自动配置坑我跳了三次
前端·人工智能·后端
kyriewen9 小时前
我用 AI 一周写完了整个项目,上线第一天就崩了——这是我踩过最贵的 5 个坑
前端·javascript·ai编程
牧艺10 小时前
从零到协同:构建类飞书在线文档系统的五个技术重难点
前端·人工智能
用户35218024547510 小时前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程
红尘散仙11 小时前
想写一个像样的终端 App?试试把 React 的开发体验搬进 Rust TUI
前端·rust
袋鼠云数栈UED团队11 小时前
一套 Spec-First 的 AI 编程工作流
前端·人工智能
袋鼠云数栈前端11 小时前
一套 Spec-First 的 AI 编程工作流
前端·ai+
angerdream11 小时前
Android手把手编写儿童手机远程监控App之vue3 路由守卫
前端