精华内容
下载资源
问答
  • ajax跨域请求java接口实例如下: 前端添加:<meta http-equiv="Access-Control-Allow-Origin" content="*">  后端实例:  // 通过用户电话号码查找用户信息  @...

    ajax跨域请求java接口实例如下:

    前端添加:<meta http-equiv="Access-Control-Allow-Origin" content="*"> 

    后端实例:


        // 通过用户电话号码查找用户信息
        @RequestMapping("/findPhoneNum")
        @ResponseBody
        public Object findPhoneNum(HttpServletRequest request,HttpServletResponse response) throws Exception {
            
            response.setHeader("Access-Control-Allow-Origin", "*");       
            /*星号表示所有的域都可以接受,*/
            response.setHeader("Access-Control-Allow-Methods", "GET,POST");

            String phoneNum = request.getParameter("phoneNum");
            Object f = shareService.findPhoneNum(phoneNum);
            return f;
        }
     

    展开全文
  • 只需一行代码就能解决跨域 只用修改后端, 前端不用处理, 适用于JAVA.SpringMVC 包括SpringBoot与SSM都适用 给Controller添加注解 生效的只有一个注解, 在SpringBoot中无需额外的包 @CrossOrigin 完整代码 @Cross...

    只需一行代码就能解决跨域

    只用修改后端, 前端不用处理, 适用于JAVA.SpringMVC
    包括SpringBoot与SSM都适用

    给Controller添加注解

    生效的只有一个注解, 在SpringBoot中无需额外的包

    @CrossOrigin
    

    完整代码

    @CrossOrigin
    @ResponseBody
    @Controller
    public class TestController {
        @RequestMapping("user")
        public Map<String, Object> user(HttpServletResponse response) {
            Map<String, Object> map = new HashMap<>();
            map.put("name", "zhang");
            map.put("age", 1);
            return map;
        }
    }
    

    说明

    @CrossOrigin
    可以加在类上, 对类中所有方法生效, 也可以只加在方法上.
    所有的IP都可以访问.
    @CrossOrigin(origins = “http://127.0.0.1:8848”)
    添加origins属性何以指定某个IP可以跨域访问

    原理

    使用的是CORS, 点击去了解

    展开全文
  • jsonp跨域请求java后台

    2020-03-13 15:04:53
    为什么要用JSONP,因为要跨域请求,一般直接请求普通文件存在跨域无权限访问的问题,至于为什么JSONP能跨域请求的话,想知道的可以百度,很多,这里就不过多赘述 举栗 前端 当前执行的项目端口号为8080,用此项目...

    什么是JSONP为什么要用JSONP

    JSONP是一种投机取巧创造的一种非官方跨域数据交互协议。

    为什么要用JSONP,因为要跨域请求,一般直接请求普通文件存在跨域无权限访问的问题,至于为什么JSONP能跨域请求的话,想知道的可以百度,很多,这里就不过多赘述

    举栗

    前端

    当前执行的项目端口号为8080,用此项目请求端口号为8082的项目

    如果不是用jsonp的话

    在做ajax请求的时候,请求不到并且浏览器会报错,错误如下:

    XMLHttpRequest cannot load http://xxxxxxNo 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://xxxxxxx' is therefore not allowed access.

     window.onload = function(){
    		var token ="hitomi";
    		 $.ajax({
                 type: "get",
                 async: false,
                 data:{
                	 token:token//传递到后台的参数
                 },
               	 //跨域的地址(这里是http://localhost:8082是这个项目地址和端口号,user/jsonplogin是请求的路径,即后台的路径)
                 url: "http://localhost:8082/user/jsonplogin",
                 dataType: "jsonp",//返回jsonp格式即:flightHandler({xxxxx});
                 jsonp: "jsonpCallback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback),作为request参数传到后台
               	 //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据,一个jsonp的名称
                 jsonpCallback:"flightHandler",
                 success: function(json){
                     alert('返回成功');
                 },
                 error: function(){
                     alert('fail');
                 }
             });
    	}
    function flightHandler(data) {
            //处理data
            alert(data);
         }

    后端

    /**
    	 * jsonp登录
    	 * @return
    	 */
    	 @ResponseBody
    	@RequestMapping(value = "/jsonplogin")
        public String test(
                            HttpServletRequest request,
                            HttpServletResponse response,String token
                            ) throws Exception{
            //String result = "{"+"result"+":"+"flightHandler"+"}";//flightHandler这个参数要返回的页面有的函数
            response.setHeader("Pragma", "no-cache");
            response.setHeader("Cache-Control", "private,no-cache,no-store,max-age=0");
            response.setDateHeader("Expires", 0);
            String str=request.getParameter("jsonpCallback");//对应ajax中jsonp传进来的值,当名称
            if (str==null||str.equals("")) {
                return str;
            } else {
                return str + "(" + str + ")";
            }
        }

    前端传到后端的参数

    以下引用此文章:ajax跨域问题处理

    Jsonp原理:

      首先在客户端注册一个callback (如:'jsonpCallback'), 然后把callback的名字(如:jsonp123)传给服务器。注意:服务端得到callback的数值后,要用jsonp123(......)把将要输出的json内容包括起来,此时,服务器生成 json 数据才能被客户端正确接收。

      然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 'jsonpCallback'的值 jsonp123

      最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。

      客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时javascript文档数据,作为参数,
      传入到了客户端预先定义好的 callback 函数(如上例中jquery $.ajax()方法封装的的success: function (json))里.(动态执行回调函数)

      可以说jsonp的方式原理上和<script src="http://跨域/...xx.js"></script>是一致的(qq空间就是大量采用这种方式来实现跨域数据交换的) .JSONP是一种脚本注入(Script Injection)行为,所以也有一定的安全隐患.

      注意,jquey是不支持post方式跨域的.

     

    展开全文
  • 一、首先angularJs实现跨域请求java思路  首先我先介绍一下Html端(前端),然后介绍一下后端java(后端采用MVC模式)。 二、$Http跨域请求方式跨域请求  前端代码: <!DOCTYPE html> <html> ...

    一、首先angularJs实现跨域请求java思路

      首先我先介绍一下Html端(前端),然后介绍一下后端java(后端采用MVC模式)。

    二、$Http跨域请求方式跨域请求

      前端代码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <!--博客园老牛大讲堂-->
            <script src="../js/angular.min.js"></script>
        </head>
        <body>
            
            <div ng-app="myApp" ng-controller="siteCtrl">
                
            <script>
                //博客园老牛大讲堂
                
                //总的来说下面的模块是固定的。跨域就按下面写
                var app = angular.module('myApp', []);
                app.controller('siteCtrl', function($scope, $http) {
                    var k=$http({
                        method:'post',
                        url: "http://127.0.0.1:8080/A/B",
                        data:{id:"1",name:"老牛大讲堂"},
                        headers:{'Content-Type': 'application/x-www-form-urlencoded'},
                        transformRequest: function(obj) {
                            
                            console.log(obj);//输出的结果是请求的参数object
                            var str = [];
                            for(var p in obj){
                                    str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                            }
                            return str.join("&");
                        },
                        responseType:"text"
                    });
                    //博客园老牛大讲堂
                    k.success(function(data){
                        console.log(data);//请求后的输出数据
                        console.log(data.firstName);//根据属性得到数据的值
                        //博客园老牛大讲堂
                    });
                });
            </script>
        </body>
    </html>

       后端代码,关于java的json包装

    package Serlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import Tools.A;
    
    public class B extends HttpServlet {
        
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doPost(request,response);
        }
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //http://127.0.0.1:8080/A/B?id=1&name=张三      //这个是访问路径加参数
            
    //博客园老牛大讲堂
          //下面加的头部是必须的,这是要求谁可以请求,谁不能请求 response.setHeader("Access-Control-Allow-Origin","*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Content-Type"); response.setHeader("Access-Control-Allow-Credentials", "true"); //博客园老牛大讲堂 String id=new String(request.getParameter("id").getBytes("ISO-8859-1"),"GBK"); String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GBK"); System.out.println("用户的id是:"+id+"他的名字是:"+name); //博客园老牛大讲堂 String jsoncallback = "{\"firstName\":\"Brett\"}";//模拟一个固定的json数据,将来要用第三方jar包进行包装。 PrintWriter out = response.getWriter(); out.println(jsoncallback); out.flush(); out.close(); } }

     

      

    转载于:https://www.cnblogs.com/laonniudajiangtang/p/6413911.html

    展开全文
  • jquery 跨域请求 Java

    2012-05-04 18:50:30
    最近项目需要使用jquery跨域请求,于是就研究了一下。终于成功了。这里把代码写出来分享一下。 需要注意,jquery跨域需要前后台合作的。 客户端 &lt;%@ page language="java" contentType="...
  • 因为规则为了安全的原因,ajax跨域请求默认是不发送cookie的,首先要搞清楚什么是跨域请求。 根据百度百科的解释是:AJAX 跨域访问是用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面。 说人话...
  • 最近在做一个前后端分离的项目,前端使用React+Ant,后端是Spring mvc+mybatis+mysql,第一次做前后端分离...问题描述:登录的时候前台axios跨域请求访问在java后台生成验证码并放到session中 /* * 生成验证码 */ ...
  • 【前端】jquery跨域请求javaServlet

    千次阅读 2016-03-15 15:47:11
    jquery 实现异步请求java服务器数据,解释常见报错情况
  • 其实也就是设置后台允许进行跨域访问,就好比权限一样,进行对外开放的形式,下面是后台代码,前端直接调用接口即可 @RequestMapping(value = "queryStatus.do",method = RequestMethod.POST)  @...
  • 需要添加的消息头和contentType,需要注意的是,返回数据需要用response.getWriter response.setContentType("application/json"); response.setHeader("Access-Control-Allow-Origin"...
  • 用jsonp实现跨域 @ApiOperation(value = "Test vehicle param info") @RequestMapping(method = RequestMethod.GET, value = { "/api/1.0/ups/test", }, produces = APPLICATION_JSON_UTF8_VA
  • 情景:利用node的express 作为中间层,跨域调取java后台接口,由于java接口对session有判断,因此每次请求都必须在req的headers中需要带上cookie,否则接口报500错误,通过多次尝试,终于成功调取到接口,代码如下:...
  • Android跨域请求获取Java后端数据,登录界面例子,完整代码,运行需要安装有eclice和Android Studio开发软件
  • Java跨域请求

    2017-09-12 10:49:17
    最近在公司需要在第三方服务器上获取一些数据,可是公司和其他公司没有合作关系,只能通过发送跨域请求来获取了。通过整理,将其写成一个API接口,需要传入四个参数 1、reqType:请求方式,post和get请求 2、req...
  • 为了跟上新的潮流,学习前后端分离的概念及技术是必须的,跨域也随之而产生。 首先确定什么是前后端分离,它不仅是对代码的解耦,也是对开发人员的解耦,真正的前端是前端,后台是后台,开发速度至少快一倍。 即你是...
  • 本篇文章主要介绍了详解Java Ajax jsonp 跨域请求,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java跨域请求

    2019-08-08 14:41:58
    1.如果能用localhost访问tomcat,IP地址却不行,可以在server.xml中添加address="0.0.0.0" ...2.允许跨域: 可以在post或者get前面加这句话: response.addHeader("Access-Control-Allow-Orig...
  • java后台跨域请求   传统的跨域请求没有好的解决方案,无非就是jsonp和iframe,随着跨域请求的应用越来越多,W3C提供了跨域请求的标准方案(Cross-Origin Resource Sharing)。IE8、Firefox 3.5 及其以后的版本、...
  • 1. 编写自定义过滤器,对于跨域的请求进行过滤,然后设置header使其支持跨域请求 package com.demo.cxf.restful.filter; import java.io.IOException; import java.util.Arrays; import java.util.HashSet; ...
  • 我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。...要知道跨域请求就要先了解同源策略,那么什么是同源?什么是不同源?简单来说就是,如果两...
  • java配置允许跨域请求

    万次阅读 2018-12-20 17:21:50
    java配置允许跨域请求 前后端分离的项目,很容易遇到跨域问题。 直接上代码: @WebFilter("/*") public class CORSFilter implements Filter { public CORSFilter() { } public void destroy() { } ...
  • 跨域请求 前端代码 $.ajax({ url:"http://localhost:8080/project/login", dataType:'jsonp', method: 'POST', data : { userName : 'abcd', password : '123456' }, jsonp:"callback", jsonp...
  • 本篇文章主要介绍了Java利用cors实现跨域请求实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,339
精华内容 535
关键字:

跨域请求java

java 订阅