axios给sprinbboot传递arraylist

时间: 2023-05-02 16:06:09 浏览: 33
Axios是一个流行的JavaScript库,用于在浏览器中发起HTTP请求。Spring Boot是一种运行在Java虚拟机上的Web框架。如果要使用Axios将ArrayList传递给Spring Boot,可以按照以下步骤进行操作。 首先,在前端使用Axios将ArrayList转换为JSON格式的字符串。使用Axios的代码示例如下: ```javascript let arr = [1, 2, 3, 4, 5]; axios.post('/api/saveList', JSON.stringify(arr)) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); ``` 这个例子中,我们首先定义了一个ArrayList,然后使用Axios的POST方法将其转换为JSON字符串,并将其发送到Spring Boot的“/api/saveList”接口。如果发送成功,Axios将返回响应并将其打印到控制台上。 接下来,我们需要在Spring Boot中处理这个列表。要实现这一点,可以使用@RequestParam注解,并指定传入的参数名称。使用Spring Boot的代码示例如下: ```java @RequestMapping(value = "/api/saveList", method = RequestMethod.POST) public void saveList(@RequestParam("arr") List<Integer> arr) { // 处理ArrayList的逻辑 } ``` 在这个例子中,我们使用@RequestMapping注解指定了我们的接口路径和请求方法。我们使用@RequestParam指定了“arr”参数名称,并将其映射到List<Integer>类型的变量。在这个方法中,我们可以使用Java代码来处理ArrayList。 总的来说,用Axios传递ArrayList到Spring Boot需要将ArrayList转换为JSON格式的字符串,并使用@RequestParam注解在Spring Boot中处理参数。阅读文档并尝试不同的请求方法和参数类型对于学习如何使用Axios和Spring Boot非常重要。

相关推荐

### 回答1: 使用axios发送GET请求传递JSON参数的步骤如下: 1. 在请求头中设置Content-Type为application/json,表示请求体中的数据是JSON格式的。 2. 将JSON参数作为请求参数传递给axios的get方法。 例如: axios.get('/api/user', { params: { name: '张三', age: 18 }, headers: { 'Content-Type': 'application/json' } }) .then(response => { console.log(response.data) }) .catch(error => { console.log(error) }) 在上面的例子中,我们向/api/user发送了一个GET请求,请求参数是一个JSON对象{name: '张三', age: 18}。注意,我们将请求头中的Content-Type设置为application/json。 当服务器收到这个请求时,会解析请求参数,并返回对应的响应数据。我们可以通过then方法获取响应数据,或者通过catch方法处理请求错误。 ### 回答2: Axios是一个流行的JavaScript库,用于在Web应用程序中发送HTTP请求。Axios使用简单,支持Promise API,并且可在浏览器和Node.js中使用。在使用Axios发送GET请求时,我们通常需要将一些参数传递给后端API,在这些参数中,可能会包含JSON格式的数据。在下面的内容中,将会详细介绍如何用Axios发送GET请求并传递JSON参数。 Axios发送GET请求的基本语法如下: javascript axios.get(url[, config]) .then(response => { // 处理响应结果 }) .catch(error => { // 处理请求错误 }) 其中,url表示请求的接口地址,config是可选参数,用于设置请求的一些配置,例如请求头、参数等。 在发送GET请求时,我们可以通过params属性设置请求的参数,Axios会自动将这些参数转换为查询字符串,并将其添加到请求的URL中。因此,我们可以使用params属性将JSON格式的数据传递给后端API。 下面是一个示例代码: javascript axios.get('/api/user', { params: { name: 'john', age: 20, profile: { gender: 'male', occupation: 'student' } } }) .then(response => { // 处理响应结果 }) .catch(error => { // 处理请求错误 }) 在上面的代码中,我们通过params属性将一个JSON对象传递给后端API,其中包含了name、age和profile三个属性,其中profile属性又是一个嵌套的JSON对象。在请求发送时,Axios会将这些参数组装成一个查询字符串,例如: /api/user?name=john&age=20&profile=%7B%22gender%22%3A%22male%22%2C%22occupation%22%3A%22student%22%7D 需要注意的是,在使用Axios发送GET请求时,如果URL中的参数需要进行编码,Axios会自动对其进行编码,我们无需手动转码。但是,在设置params属性时,我们需要手动将其中的JSON对象转换为字符串,并将其进行URL编码,例如: javascript const params = { name: 'john', profile: { gender: 'male', occupation: 'student' } } paramsStr = encodeURIComponent(JSON.stringify(params)) axios.get(/api/user?params=${paramsStr}) .then(response => { // 处理响应结果 }) .catch(error => { // 处理请求错误 }) 在上面的代码中,我们使用encodeURIComponent()方法将JSON对象转换为字符串并进行URL编码,然后将其作为URL的一部分传递给后端API进行处理。 综上所述,通过params属性将JSON格式的数据传递给后端API是一种简单而常见的方法,在使用Axios时,我们只需要将JSON对象作为params属性的值传递给Axios,然后它会自动将其转换为查询字符串。如果URL中的参数需要进行编码,我们需要手动将其转换为字符串并进行编码,然后将其作为URL的一部分传递给Axios。 ### 回答3: axios是一款基于Promise的HTTP客户端,可用于浏览器和Node.js。它具备强大的功能,包括从浏览器中发出XMLHttpRequest请求,以及从Node.js中发出HTTP请求等。而GET请求是其中最为常用的一种请求方式,常被用来向服务器获取数据。 在使用axios发起GET请求时,如果需要传递json参数,可以通过使用params参数将JSON对象转换为URL请求参数。例如: axios.get('/api/data', { params: { name: 'Tom', age: 20 } }) .then(function (response) { console.log(response.data); }) .catch(function (error) { console.log(error); }); 上面的代码中,我们发起了一个GET请求,请求的URL是“/api/data”,同时通过params参数传递了一个JSON对象,该对象包含两个属性,分别是“name”和“age”。 如果需要在GET请求中直接传递JSON对象,则可以通过使用“JSON.stringify()”方法将JSON对象转换为字符串,然后将其作为请求参数传递。例如: axios.get('/api/data?params=' + JSON.stringify({name: 'Tom', age: 20})) .then(function (response) { console.log(response.data); }) .catch(function (error) { console.log(error); }); 上面的代码中,我们将JSON对象直接转换为字符串,并且将其作为“params”参数的值,然后通过GET请求发送到服务器。 总之,无论是通过params参数,还是将JSON对象转换为字符串,都可以实现在axios的GET请求中传递JSON参数的功能。需要根据具体的业务需求和服务器端的实现来选择最适合的方法。
### 回答1: 在使用axios向后台传递数组作为参数时,可以使用get请求或post请求两种方法。 一、GET请求 通过get请求将数组作为参数传递 例如: // 示例数据 const data = [1, 2, 3, 4, 5]; // 将数据进行拼接 const params = data.join(','); // 发送GET请求 axios.get('/api', { params: { data: params } }).then(res => { console.log(res.data); }).catch(error => { console.log(error); }); 在服务端中,可以通过req.query来获取传递过来的参数,如下所示: let data = req.query.data.split(","); console.log(data); // [ '1', '2', '3', '4', '5' ] 二、POST请求 通过post请求将数组作为参数传递 例如: // 示例数据 const data = [1, 2, 3, 4, 5]; // 发送POST请求 axios.post('/api', { data: data }).then(res => { console.log(res.data); }).catch(error => { console.log(error); }); 在服务端中,可以通过req.body来获取传递过来的参数,如下所示: let data = req.body.data; console.log(data); // [1, 2, 3, 4, 5] 需要注意的是,如果后台使用的是Node.js的原生http模块,需要在服务端设置Access-Control-Allow-Origin解决跨域问题。 ### 回答2: Axios作为一种常用的网络请求工具,可以方便地与后台进行交互,其中包括向后台传递数组作为参数。 传递数组最常见的场景是在进行批量操作时,通常需要将多个相似的数据一起传递给后台进行处理,这种情况下,可以将数据封装成一个数组,并通过Axios将整个数组传递给后台。 首先,在使用Axios发送请求时,需要设置请求的方式以及请求的地址和参数等信息。对于传递数组作为参数,可以通过以下的方式进行设置: javascript axios({ method: 'post', //请求方式,此处为post方法 url: '/api/user', //请求地址 data: { users: [ //将要传递的数组 { name: '张三', age: 20 }, { name: '李四', age: 21 }, { name: '王五', age: 22 } ] } }) .then(function (response) { //接收后台返回的数据 console.log(response); }) .catch(function (error) { //处理异常情况 console.log(error); }); 如上代码所示,我们可以通过data字段将数组封装成一个对象,然后传递给后台。在数据传递的过程中,可以通过相应的请求方式(比如post)将数据传递给后台。 在后台接收这个数组对象时,需要进行相应的数据解析,比如将数组中的数据逐个插入数据库或者进行其他的处理,具体的实现也需要根据后台的具体需求进行调整。 综上,通过对Axios传递数组作为参数的方法进行了解和实践,可以轻松地将多个相似的数据一起传递给后台进行处理,改善了网页交互效率,增加了用户的体验感。 ### 回答3: 在使用axios向后台传递数组作为参数时,可以通过以下方法进行处理: 1. 通过URL传递参数 在URL中传递参数是最基本也是最常见的方法,针对数组参数也可以使用这种方法。将参数数组转化为字符串,然后拼接在URL中进行传递。例如,将[1,2,3]转化为"1,2,3",然后拼接到URL中:http://localhost:8080/api?ids=1,2,3。 2. 通过请求体传递参数 对于需要传递复杂数组参数的情况,可以通过请求体进行传递。首先需要设置请求头Content-Type为application/json,然后将参数数组进行序列化(例如使用JSON.stringify()方法),作为请求体传递到后台处理。例如: axios.post('/api', { data: JSON.stringify([1, 2, 3]) }, { headers: { 'Content-Type': 'application/json' } }) 在后台接收请求时,需要对请求体进行解析。针对Node.js环境,可以使用bodyParser中间件对请求体进行解析,将JSON字符串转化为对象。 3. 通过formData传递参数 对于需要上传文件或二进制数据的情况,可以通过formData传递参数。首先创建一个FormData对象,然后调用append()方法添加参数数组,最后将formData作为请求体传递。例如: const formData = new FormData() formData.append('ids', [1, 2, 3]) axios.post('/api', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) 在后台接收请求时,需要对formData进行解析。针对Node.js环境,可以使用formidable模块对formData进行解析,将数组参数转化为数组对象。 无论是哪种方法,都需要保证前后台处理参数的方式一致,避免造成参数解析错误。同时,针对复杂数组参数,还需要对参数进行校验和转换,保证参数的正确性和完整性。
### 回答1: 在Vue中使用Axios传递JSON数据,可以使用Axios的post方法,并将数据作为第二个参数传递。例如: axios.post('/api/data', { name: '张三', age: 18, gender: '男' }) .then(response => { console.log(response.data) }) .catch(error => { console.log(error) }) 在这个例子中,我们向/api/data发送一个POST请求,并传递一个包含姓名、年龄和性别的JSON对象作为数据。在成功响应后,我们打印出响应数据。如果出现错误,我们将错误打印到控制台。 需要注意的是,Axios默认将数据作为JSON格式发送。如果需要发送其他格式的数据,可以使用headers选项来设置请求头。例如,如果需要发送表单数据,可以设置Content-Type为application/x-www-form-urlencoded,并使用qs库将数据序列化为URL编码的格式。 ### 回答2: Vue是一种流行的JavaScript框架,用于构建交互式的Web应用程序。Axios是一个流行的JavaScript库,用于执行异步HTTP请求。在Vue应用程序中使用Axios非常方便,可以帮助我们轻松地与服务器进行异步通信。Axios可以用于传递JSON数据,使得在Vue中进行数据传递变得非常简单。 Axios提供了多种方法用于传送JSON数据,其中最常用的是POST方法。我们可以使用axios.post()方法向服务器传递JSON数据。这个方法需要两个参数,第一个是要发送JSON数据的URL,第二个是要发送的JSON数据。 例如,如果我们要向服务器传递一个对象中包含的JSON数据,我们可以这样写: axios.post('/url', { firstName: 'John', lastName: 'Doe' }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); 这个代码片段向服务器发送了一个包含firstName和lastName属性的JSON数据。我们可以在then函数中处理服务器响应的返回值。如果服务器出错,我们可以在catch函数中处理错误。 除了POST方法外,Axios还提供了PUT、PATCH、DELETE等其他方法,用于向服务器传递JSON数据。这些方法的用法和POST方法类似,在第一个参数中指定URL,在第二个参数中指定JSON数据即可。 最后,我们需要注意的是,在传递JSON数据时,我们需要确保服务器端能够正确识别和解析JSON数据。在前端代码中,我们可以使用JSON.stringify()方法将JavaScript对象转换为JSON字符串;在后端代码中,我们可以使用JSON.parse()方法将JSON字符串转换为JavaScript对象。只有正确地解析JSON数据,才能确保数据能够正常地在前端和后端之间传递。 ### 回答3: Vue.js是一个非常流行且灵活的JavaScript框架,它使得开发Web应用程序变得更加简单和快速。Vue.js通过其面向数据和MVVM框架的特性,可以轻松地与各种后端服务器进行交互,其中axios库的使用是其中非常重要的一部分。 由于Vue.js是用于构建SPA(单页面应用程序)的,所以数据交换通常通过ajax方法或fetch方法来完成。因此,当您需要在Vue.js中传递JSON数据时,可以使用axios库来实现。 使用axios库传递JSON数据的步骤如下: 第一步:安装axios库 使用npm工具,通过以下命令将它安装到您的Vue.js项目中: npm install axios --save 第二步:在Vue组件中导入并使用axios库 在Vue组件中使用以下代码导入axios库: import axios from 'axios' 然后,您可以将axios库与您的Vue组件的data对象一起使用,以便将JSON数据传递到后端服务器。例如,如果要传递以下JSON数据: { "name": "John", "email": "john@example.com", "message": "Hello world" } 则可以使用以下代码将其传递到后端服务器: axios.post('/my-api-url', { name: this.name, email: this.email, message: this.message }) .then(response => { console.log(response.data) }) .catch(error => { console.log(error.response.data) }) 在这个例子中,我们使用axios.post方法将JSON数据发送到指定的URL,在响应完成之后,我们使用.then方法处理响应数据或使用.catch方法处理错误。 总结:因为Vue.js提供了非常便捷的MVVM框架和数据绑定机制,可以很容易地使用axios库来传递JSON数据。通过这个过程,开发人员可以通过Vue.js的组件化方法协调组件之间的关系,非常实用。使用Vue.js + axios的组合不仅可以改善Web应用程序的性能,加快前端开发速度,还可以轻松地支持各种后端数据交换协议。
Vue是一种流行的前端框架,它提供了许多有用的工具和组件,方便我们开发高质量的Web应用程序。其中之一就是Axios,Axios是一个流行的基于Promise的HTTP客户端,它可以在浏览器和Node.js中使用。通过它,开发者可以方便地发送HTTP请求,也可以自定义请求头部信息、请求数据等。 Vue封装Axios能够更好的管理和维护我们的代码,使得发起HTTP请求更加便捷和方便。对于传递JSON数据,我们一般可以按照如下步骤进行: 1. 在Vue项目中安装axios npm install axios --save 2. 封装axios 在项目中新建一个api.js文件,在其中封装axios。目的是为了让发送请求时可以直接使用该文件中定义的函数,在需要时只需要调用,并可以设置统一的请求头部信息等,如下所示: import axios from 'axios' const baseURL = 'http://localhost:3000' export default { post(url, data) { return axios({ method: 'post', baseURL: baseURL, url, data: data, withCredentials: true, //表示跨域请求时是否需要使用凭证 headers: { 'Content-Type': 'application/json;charset=UTF-8' //可以根据需要设置请求头部信息 } }) } } 在这里我们将post方法暴露出来,方便其他地方使用,其中需要传入两个参数'url'和'data'。url表示请求的地址,data则表示请求的数据,这里我们设置的数据为一个JSON对象。 3. 发送请求 在调用API的地方,可以直接使用封装好的axios方法进行发送请求,如下: import api from './api.js' api.post('/login', { username: 'admin', password: 'admin123' }).then(res => { //处理请求获取到的数据 }) 通过封装axios,我们可以统一管理所有的API请求,并进行相应的配置,方便我们进行开发。同时,可以有效规避代码冗余和错误的出现,提高代码质量和开发效率。
### 回答1: axios可以通过params或data属性来传递参数给后端。params用于GET请求,data用于POST请求。下面分别给出示例代码: 使用params传递参数(GET请求): javascript axios.get('/api/user', { params: { id: 1, name: 'John' } }) .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }); 使用data传递参数(POST请求): javascript axios.post('/api/user', { id: 1, name: 'John' }) .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }); 注意,在使用data传递参数时,axios默认会将请求数据格式设置为JSON格式。如果需要将数据格式设置为表单形式(application/x-www-form-urlencoded),可以使用qs库将数据转换为表单形式,然后再将其传递给axios。例如: javascript import qs from 'qs'; axios.post('/api/user', qs.stringify({ id: 1, name: 'John' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }); ### 回答2: axios是一种用于发送HTTP请求的JavaScript库,可以在前端与后端进行数据的传输和交互。要通过axios向后端传递参数,可以使用以下方法: 1. 在GET请求中传递参数: javascript // 在请求的URL后面拼接参数 axios.get('/api/user', { params: { id: 1, name: 'John' } }) 2. 在POST请求中传递参数: javascript // 作为请求体的形式传递参数 axios.post('/api/user', { id: 1, name: 'John' }) 3. 在请求头中传递参数: javascript // 在请求头中设置自定义参数'X-Auth-Token' axios.get('/api/user', { headers: { 'X-Auth-Token': 'your-token' } }) 4. 在多个请求中统一传递公共参数: javascript // 创建axios实例 const instance = axios.create({ baseURL: '/api', params: { token: 'your-token' } }); // 调用该实例发送请求 instance.get('/user', { params: { id: 1 } }); 以上是使用axios向后端传递参数的几种常见方式。根据具体的后端接口要求和业务需求,可以选择适合的方法来传递参数,从而实现与后端的数据交互。 ### 回答3: 在使用axios传递参数给后端时,我们可以采用以下方法: 1. 使用GET请求时,我们可以直接在请求的URL中附加参数。例如,如果我们想传递一个名为id的参数,可以这样写URL:/api/getData?id=1。后端可以通过获取URL中的参数来处理请求。 2. 使用POST请求时,我们可以将参数作为请求体中的一部分进行传递。首先,我们需要将参数对象转换为URL编码的字符串(使用qs库或手动编码)。然后,将其作为data属性的值传递给axios的配置对象中。例如:axios.post('/api/submitData', { data: '参数值' })。 3. 如果需要传递的参数较为复杂,我们可以将其作为一个JSON对象传递,然后设置请求的Content-Type头为application/json。例如:axios.post('/api/submitData', { data: '参数值' }, { headers: { 'Content-Type': 'application/json' } })。这样可以确保后端可以正确解析JSON对象并处理相应的参数。 需要注意的是,在使用axios传递参数给后端之前,我们需要确保服务器端已经配置好了相应的接口,并能够正确解析和处理传递过来的参数。同时,还需要处理可能出现的错误情况,例如网络异常、请求超时等等,以提高系统的稳定性和可靠性。

最新推荐

axios拦截设置和错误处理方法

下面小编就为大家分享一篇axios拦截设置和错误处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

vue+ts下对axios的封装实现

主要介绍了vue+ts下对axios的封装实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

使用async await 封装 axios的方法

主要介绍了使用async await 封装 axios的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

axios的拦截请求与响应方法

今天小编就为大家分享一篇axios的拦截请求与响应方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

axios发送post请求springMVC接收不到参数的解决方法

下面小编就为大家分享一篇axios发送post请求springMVC接收不到参数的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

代码随想录最新第三版-最强八股文

这份PDF就是最强⼋股⽂! 1. C++ C++基础、C++ STL、C++泛型编程、C++11新特性、《Effective STL》 2. Java Java基础、Java内存模型、Java面向对象、Java集合体系、接口、Lambda表达式、类加载机制、内部类、代理类、Java并发、JVM、Java后端编译、Spring 3. Go defer底层原理、goroutine、select实现机制 4. 算法学习 数组、链表、回溯算法、贪心算法、动态规划、二叉树、排序算法、数据结构 5. 计算机基础 操作系统、数据库、计算机网络、设计模式、Linux、计算机系统 6. 前端学习 浏览器、JavaScript、CSS、HTML、React、VUE 7. 面经分享 字节、美团Java面、百度、京东、暑期实习...... 8. 编程常识 9. 问答精华 10.总结与经验分享 ......

无监督视觉表示学习中的时态知识一致性算法

无监督视觉表示学习中的时态知识一致性维信丰酒店1* 元江王2*†马丽华2叶远2张驰2北京邮电大学1旷视科技2网址:fengweixin@bupt.edu.cn,wangyuanjiang@megvii.com{malihua,yuanye,zhangchi} @ megvii.com摘要实例判别范式在无监督学习中已成为它通常采用教师-学生框架,教师提供嵌入式知识作为对学生的监督信号。学生学习有意义的表征,通过加强立场的空间一致性与教师的意见。然而,在不同的训练阶段,教师的输出可以在相同的实例中显著变化,引入意外的噪声,并导致由不一致的目标引起的灾难性的本文首先将实例时态一致性问题融入到现有的实例判别范式中 , 提 出 了 一 种 新 的 时 态 知 识 一 致 性 算 法 TKC(Temporal Knowledge Consis- tency)。具体来说,我们的TKC动态地集成的知识的时间教师和自适应地选择有用的信息,根据其重要性学习实例的时间一致性。

yolov5 test.py

您可以使用以下代码作为`test.py`文件中的基本模板来测试 YOLOv5 模型: ```python import torch from PIL import Image # 加载模型 model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # 选择设备 (CPU 或 GPU) device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu') # 将模型移动到所选设备上 model.to(device) # 读取测试图像 i

数据结构1800试题.pdf

你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。

基于对比检测的高效视觉预训练

10086⇥⇥⇥⇥基于对比检测的高效视觉预训练Ol i vierJ. He´naf f SkandaKoppula Jean-BaptisteAlayracAaronvandenOord OriolVin yals JoaoCarreiraDeepMind,英国摘要自我监督预训练已被证明可以为迁移学习提供然而,这些性能增益是以大的计算成本来实现的,其中最先进的方法需要比监督预训练多一个数量级的计算。我们通过引入一种新的自监督目标,对比检测,任务表示与识别对象级功能跨增强来解决这个计算瓶颈。该目标可提取每幅图像的丰富学习信号,从而在各种下游任务上实现最先进的传输精度,同时需要高达10少训练特别是,我们最强的ImageNet预训练模型的性能与SEER相当,SEER是迄今为止最大的自监督系统之一,它使用了1000多个预训练数据。最后,我们的目标无缝地处理更复杂图像的预训练,例如COCO中的图像,缩小了从COCO到PASCAL的监督迁移学习的差距1. 介绍自从Al