A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

js中的跨域标签有那几个呢?分别是这三种。img , link ,script

我们后台人员用的最多的是script,通过访问其他服务器。请求的参数,封装成一个函数调用的字符串返回。我只需要在定义一个函数相同的方法去执行,被封装的参数就可以实现最原生的跨域请求了。

在java领域中,springMVC的版本在4.2或以上版本,可以使用注解实现跨域, 我们只需要在需要跨域的方法上添加注解@CrossOrigin即可

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。
它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

CORS请求默认不发送Cookie和HTTP认证信息。如果要把Cookie发到服务器,一方面要服务器同意,指定Access-Control-Allow-Credentials字段。另一方面,开发者必须在AJAX请求中打开withCredentials属性。否则,即使服务器同意发送Cookie,浏览器也不会发送。或者,服务器要求设置Cookie,浏览器也不会处理。



下面是简单小案例。
import java.util.HashMap;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
* @author liyu
*/
@RestController
@RequestMapping(value = "/cross", method = RequestMethod.POST)
public class ApiController {

    @CrossOrigin(origins = "http://172.16.53.54:8080")
    @RequestMapping(value = "/get")
    public HashMap<String, Object> get(@RequestParam String str) {
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("str", str);
        System.out.println("跨域成功;");
        return map;
    }
}



页面代码:
<script>
        $(function() {
            $('#tt').click(function() {
                $.ajax({
                    url : "http://172.16.53.54:8080/cross/get",
                    type : "POST",
                    data : {
                        str : "测试"
                    },
                    success : function(data, status, xhr) {
                        console.log(data);
                        alert(data.str);
                    }
                });
            });
        })
    </script>



1.png (80.54 KB, 下载次数: 16)

1.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马