zoukankan      html  css  js  c++  java
  • javascript 跨域请求的两种方法

    还在为javascript跨域访问头疼么?

    以下两种解决方案或许可以帮你解忧:

    1. 使用跳转请求页

    使用跳转页不做详细介绍了,原理比较简单,因为服务器端脚本不存在跨域访问,所以在当前域名下新增一个页面来进行请求当前域外的页面,进而获得所需数据,给当前域下的页面使用。

    就相当于是,我要给国外的一位朋友送一个礼物,但是我没有获得签证(浏览器的许可),不能出国,所以只好委托一个快递公司来帮我做这件事了,区别是雇佣快递公司需要钱,多写个跳转页面成本没那么高 :)

     

    2. 远程加载 javascript 方法

    单独使用javascriptxmlhttp请求(也就是AJAX技术)其他域名下的页面时,会有权限问题。

    浏览器对javascript本身加载js并没有跨域问题,例如

    <script type="text/javascript" src=" http://www.test.com/test.jsp "></script>中的src可以是任意的地址(域名可以不是当前请求的页面的域名)

    因此,我们可以利用这一点来进行javascript的跨域请求。

    示例代码:a.html


     1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2<html xmlns="http://www.w3.org/1999/xhtml">
     3
     4<body>
     5
     6<head>
     7
     8         <title></title>
     9
    10         <script type=”text/javascript”>
    11
    12         function fnShowResult(strResult){
    13
    14                   //TODO:strResult是通过jsp获取到的数据,当然这个函数可以有多个参数
    15
    16         }

    17
    18
    </script>
    19
    20</head>
    21
    22<div>相关咨询:</div>
    23
    24</body>
    25
    26<script type="text/javascript" src=" http://www.test.com/test.jsp ?cnt=10"></script>
    27
    28</html>
    29

    其中,src的地址http://www.test.com/test.jsp就是远程需要加载的javascript代码页面。

    这个test.jsp中可以实现你所需要读取数据的操作,并组织成javascript代码输出。

    示例代码:test.jsp


    Code

    这样,在test.jsp中读取所需数据之后,就调用a.html中已经定义好的fnShowResult函数来进行数据的展示了。哈哈,这样是不是很好玩?

    不过,需要注意的是这种方法在给test.jsp提交数据参数时,是使用了get方法来提交信息,而get方法每次提交的信息不能超过 2k,不过在大部分应用2K都还够用,不是吗?

  • 相关阅读:
    [AHOI 2005]COMMON 约数研究
    [AHOI 2016初中组]迷宫
    [HNOI 2002]营业额统计
    [HAOI 2012]音量调节
    [HAOI 2010]软件安装
    [NOI 2015]荷马史诗
    浏览器同源政策
    docker 进程 转载:https://www.cnblogs.com/ilinuxer/p/6188303.html
    docker 进程 转载:
    redis 缓存问题,转载:https://www.cnblogs.com/liangsonghua/p/www_liangsonghua_me_22.html
  • 原文地址:https://www.cnblogs.com/zhangqingping/p/1417879.html
Copyright © 2011-2022 走看看