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 启动服务

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

相关推荐

  1. Ajax请求

    2023-12-20 16:36:04       12 阅读
  2. 一知半解,临时解决ajax请求

    2023-12-20 16:36:04       24 阅读
  3. js ajax初次请求

    2023-12-20 16:36:04       11 阅读
  4. 如何在PHP中处理请求

    2023-12-20 16:36:04       27 阅读
  5. 在Spring Boot中如何处理请求(CORS)?

    2023-12-20 16:36:04       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-20 16:36:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-20 16:36:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-20 16:36:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-20 16:36:04       18 阅读

热门阅读

  1. Web安全 - 深入同源策略

    2023-12-20 16:36:04       38 阅读
  2. 蓝底白字车牌的定位与字符分割识别 MATLAB 仿真

    2023-12-20 16:36:04       34 阅读
  3. [PTA]矩阵列平移

    2023-12-20 16:36:04       38 阅读
  4. 05-MySQL中的limit和union关键字

    2023-12-20 16:36:04       33 阅读
  5. 【libevent】IO引擎及实现

    2023-12-20 16:36:04       30 阅读
  6. springboot 解析微信小程序获取手机号

    2023-12-20 16:36:04       23 阅读
  7. 基于改进鲸鱼算法的最小乘支持向量机数据分类

    2023-12-20 16:36:04       29 阅读
  8. Python用Pygame实现一个五子棋小游戏

    2023-12-20 16:36:04       35 阅读
  9. iOS将framework转为xcframework

    2023-12-20 16:36:04       35 阅读
  10. Dubbo RPC-Redis协议

    2023-12-20 16:36:04       42 阅读
  11. Prolist组件实现动态竖排展示

    2023-12-20 16:36:04       33 阅读
  12. 在vue中,文件转base64示例

    2023-12-20 16:36:04       33 阅读
  13. WPF 全局异常处理

    2023-12-20 16:36:04       40 阅读
  14. Spring 声明式事务

    2023-12-20 16:36:04       41 阅读
  15. Hive Serde

    2023-12-20 16:36:04       40 阅读