当前位置: 首页 > news >正文

RPC(5):AJAX跨域请求处理

接上一篇RPC(4):HttpClient实现RPC之POST请求进行修改。

1 修改客户端项目

1.1 修改maven文件

修改后配置文件如下:

    <dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.3.2.RELEASE</version><scope>import</scope><type>pom</type></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.12</version></dependency><dependency><groupId>org.example</groupId><artifactId>httpclient_rpc_pojo</artifactId><version>1.0-SNAPSHOT</version><scope>compile</scope></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.11.1</version></dependency></dependencies>

1.2 新增页面

在resource下的static中新增index.html页面(提前引入jquery)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script type="text/javascript" src="jquery.min.js"></script><script type="text/javascript">var url = "123";// javascript中默认的,ajax请求不能跨域。// 跨域 - ajax所属的站点,和被请求的站点,不是同一个域。// 域 - ip,端口,域名,主机名,任何一个有变化,都是不同域。// 需要服务器,返回的响应中增加跨域请求头。function sendBodyParams(){$.ajax({"url": "http://localhost:80/bodyParams","type":"post","data":"[{\"name\":\"abc\", \"password\":\"123\"},{\"name\":\"def\", \"password\":\"321\"}]","contentType":"application/json", // 必须设定,代表请求体的格式。默认是text/plain; 默认是 参数名=参数值&参数名=参数值 的字符串"dataType":"json","success":function(data){alert(data);console.log(data);}});}</script>
</head>
<body style="text-align: center"><button onclick="sendBodyParams()">测试AJAX请求,请求体传递JSON参数</button>
</body>
</html>

1.3 编写启动类

package com.example.httpclient;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class TestApp {public static void main(String[] args) {SpringApplication.run(TestApp.class, args);}
}

2 修改服务端项目

在bodyParams中新增@CrossOrigin方法。

3 启动服务

访问页面,点击按钮,结果如下:

http://www.lryc.cn/news/264731.html

相关文章:

  • 用大白话举例子讲明白区块链
  • Java URL
  • ETL-从1学到100(1/100):ETL涉及到的名词解释
  • Jenkins + gitlab 持续集成和持续部署的学习笔记
  • R语言【cli】——通过cli_abort用 cli 格式的内容显示错误、警告或信息,内部调用cli_bullets和inline-makeup
  • cka从入门到放弃
  • 通过 jekyll 构建 github pages 博客实战笔记
  • 【AI美图】第09期效果图,AI人工智能汽车+摩托车系列图集
  • 网线的制作集线器交换机路由器的配置--含思维导图
  • LLM微调(四)| 微调Llama 2实现Text-to-SQL,并使用LlamaIndex在数据库上进行推理
  • 柔性数组(结构体成员)
  • C#合并多个Word文档(微软官方免费openxml接口)
  • MySQL 5.7依赖的软件包和下载地址
  • 图论 | 网络流的基本概念
  • 【音视频 | AAC】AAC音频编码详解
  • redis基本用法学习(C#调用NRedisStack操作redis)
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • 【SpringBoot快速入门】(4)SpringBoot项目案例代码示例
  • Linux服务器 部署飞书信息发送服务
  • 用C#也能做机器学习?
  • Python PDF格式转PPT格式
  • 搭建知识付费平台?明理信息科技为你提供全程解决方案
  • 漫谈UNIX、Linux、UNIX-Like
  • Netty Review - Netty与Protostuff:打造高效的网络通信
  • 在ClickHouse数据库中启用预测功能
  • 目标检测YOLO实战应用案例100讲-树上果实识别与跟踪计数(续)
  • Docker 文件和卷 权限拒绝
  • Appium Server 启动失败常见原因及解决办法
  • 将Abp默认事件总线改造为分布式事件总线
  • Jupyter Notebook修改默认工作目录