【问题标题】:Google app engine: getting javascript variable(client side) to python string(server side)谷歌应用引擎:将javascript变量(客户端)获取到python字符串(服务器端)
【发布时间】:2023-04-06 14:42:01
【问题描述】:

1)我在屏幕上处理后打印的链接如下-

for i in index:
   self.response.out.write('<a id="w3s" href="' + i + '">' +i+' class="testClick" </a><br>')

其中 index 是处理后的 url 列表。显示结果的 url 类似于 mysite.com/sign

2) 我想知道用户点击了哪个链接。这就是我试图做的-

<script>
var addressValue;
$(document).ready(function(){
  $("a").click(function(){
    addressValue = $(this).attr("href");
  });    
});
</script>

我在 addressValue 变量中获得了点击的 url,但接下来我应该做什么。我不知道如何使用 GET 或 POST 方法来获取变量服务器端;然后如何在我的 python 变量中获取字符串。

使用 GET/POST:(不工作)

<script>

var addressValue;

$(document).ready(function(){
  $("a").click(function(){
    addressValue = $(this).attr("href");

//Method-I
    $.post("https://mysite.com/sign",
    {
        fooParameter: addressValue,
    },
    function(data,status){
        alert("Data: " + data + "\nStatus: " + status);
    });
  });    
});


//Method-II
$.ajax({
    url: "https://mysite.com/sign",
    method: "POST",
    data: {fooParameter: addressValue},
});

</script>

然后通过以下命令访问python字符串中的变量

selectedlink=self.request.get('fooParameter')

我在哪里弄错了还是有其他方法? 注意:我使用的是 Google App 引擎

【问题讨论】:

  • 我不确定我是否了解您,但您正在寻找的是纯 Javascript。如果您使用 jQuery 库,您可以捕获点击的 url 并将其以 JSON 格式发布到服务器。 api.jquery.com/clickapi.jquery.com/jQuery.post
  • api.jquery.com/click:我已经成功实现了,但是 api.jquery.com/jQuery.post -> 对于 GET/POST,我在实现这个时遇到了问题。我已经粘贴了上面的代码。请检查您是否可以提供帮助
  • 会不会是 CORS 问题 (en.wikipedia.org/wiki/Cross-origin_resource_sharing)?您必须通过从 python 后端返回 Access-Control-Allow-Origin 标头来允许跨域请求。

标签: javascript jquery python google-app-engine


【解决方案1】:

还有另一种解决方案,它不需要 javascript。 创建指向您自己的处理程序的链接,该处理程序重定向到查询字符串。

例子:

<a target="_blank" href="/redir_url?http://www.example.com/address.html">Example address</a>

处理程序:

class RedirUrl(webapp2.RequestHandler):

    def get(self):

        url = self.request.query_string
        logging.info('user clicked ' + url)
        self.redirect(url)        

【讨论】:

  • 非常感谢!它的工作。还有其他方法吗。重定向非常缓慢且可见。
  • 重定向可见?慢?
猜你喜欢
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多