兠兠沒橖 2017-06-16 11:37 采纳率: 0%
浏览 3782
已结题

为什么getRequest()获得的是本页面的url,而不是请求页面的url

    在配置微信JS-SDK接口的时候,需要在后台动态获得发送请求的页面的url(http://localhost:8080/ConnectTest/GetData.jsp),但我用getRequestURL得到的却是后台文件的地址(http://localhost:8080/ConnectTest/sign),ps:使用过request.getAttribute("javax.servlet.forward.request_uri")但返回的url为null。代码如下     

GetData.jsp代码:

       <script>
      $(document).ready(function(){
              $.ajax({
                  //提交数据的类型 POST GET
                  type:"Get",
                  //提交的网址
                  url:"http://localhost:8080/ConnectTest/sign",
                  //提交的数据
                  /* data:form, */
                  datatype:"json",
                  success:function(data){
                    var obj = JSON.parse(data);
                    var jsonstr = JSON.stringify(obj);
                    var jsary = eval('('+jsonstr+')');
                    alert(jsary.url)
                    alert(location.href.split('#')[0])
                    wx.config({
                        debug: true, 
                        appId: 'wx51b7336a2b1cd2d9',
                        timestamp: 'jsary.timestamp', 
                        nonceStr: 'jsary.nonceStr', 
                        signature: 'jsary.signature',
                        jsApiList: [
                            "wx.onMenuShareTimeline"
                        ]
                    });
                    wx.ready(function(){
                        //share to timeline
                        wx.onMenuShareTimeline({
                            title: '百度', // 分享标题
                            link: 'www.baidu.com', 
                            imgUrl: 'https://www.baidu.com/img/bd_logo1.png', // 分享图标
                            success: function () { 
                                alert("分享成功")
                            },
                            cancel: function () { 
                                alert("分享失败")
                            }
                        });
                    });
                  }
                });
       });
  </script>

Sign.java(http://localhost:8080/ConnectTest/sign):

     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            String jsapi_ticket = "kgt8ON7yVITDhtdwci0qeXxjVFn7AZ9I21TkQnlxXoQF3VTPc5tRORpvuB_slLD-Xua5sSwuBOrO5ZfMNGJUTA"; 
            String url = request.getRequestURL().toString()+"/";
            System.out.println(url);
            Map<String, String> ret = sign(jsapi_ticket, url);
                        sendScResponse(ret, response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
        <-- 中间省略一些不重要的代码-->
        private void sendScResponse(Object obj, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/javascript; charset=UTF-8");
        response.setCharacterEncoding("UTF-8");

        if (obj != null) {
            String responseStr = m_gson.toJson(obj);
            response.getWriter().write(responseStr);
        }
    }
  • 写回答

3条回答 默认 最新

  • chenl_ 2017-06-16 14:37
    关注

    我记得请求头一个referrer就是代表来自的地址

    评论

报告相同问题?

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)