JS跨域:2.解决方案之-设置回调参数

2024-09-03 14:32

本文主要是介绍JS跨域:2.解决方案之-设置回调参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一 服务器端代码

package com.cn;import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("/data/inteface")
public class CSDNTest {@RequestMapping("/getdata")public void getSolrArticleen(String parameter,HttpServletRequest request, HttpServletResponse response) throws Exception{String callback = request.getParameter("jsoncallback");parameter = new String(parameter.getBytes("iso-8859-1"), "utf-8");//获取数据DataRepository dataRepository = new DataRepository();List<String> primaryItems = dataRepository.getData();//把获取的数据转换成字符串,这里用的是FastJson,也可以根据需要用GsonString jsonArticle = JSONObject.toJSONString(primaryItems,SerializerFeature.DisableCircularReferenceDetect);//把需要输出的服务器端的字符串拼接callback头     String json = callback+"(" + jsonArticle + ")";//输出到客户端GetOut.getWriter(json, response);}
}

二 获取输出流的代码

package com.cn;import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
/*** * @Title: GetOut.java** @Package: com.cn** @Company: WiiMedia** @Description: 获取输出流** @author: SongJia** @date: 2016-06-27 上午11:09:27**/
public  class GetOut {public static PrintWriter getWriter(String msg,HttpServletResponse response) throws IOException{response.setContentType("text/html;charset=utf-8");PrintWriter out = null;out = response.getWriter();out.write(msg);out.flush();out.close();return out;}
}

三 客户端请求数据代码

<script type="text/javascript">function AcquireData() {$.ajax({   async:false,   url: "http://m.lecoonginfo.com/data/inteface/getdata,  // 跨域URL  type: 'GET',   dataType: 'jsonp',   jsonp: 'jsoncallback', //默认callback  timeout: 5000,   success: function (json) {//客户端jquery预先定义好的callback函数,//成功获取跨域服务器上的json数据后,//会动态执行这个callback函数   console.log(json);}}});   
</script>

这篇关于JS跨域:2.解决方案之-设置回调参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133226

相关文章

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

C#文件复制异常:"未能找到文件"的解决方案与预防措施

《C#文件复制异常:未能找到文件的解决方案与预防措施》在C#开发中,文件操作是基础中的基础,但有时最基础的File.Copy()方法也会抛出令人困惑的异常,当targetFilePath设置为D:2... 目录一个看似简单的文件操作问题问题重现与错误分析错误代码示例错误信息根本原因分析全面解决方案1. 确保

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路