谷歌应用引擎:获取javascript变量(客户端)到python字符串(服务器端)

时间:2014-03-18 16:59:59

标签: javascript jquery python google-app-engine

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

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

其中索引是已处理网址的列表。显示结果的网址类似于mysite.com/sign

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

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

我在 addressValue 变量中获得了点击的网址,但我接下来应该怎么做。我无法获得如何使用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引擎

1 个答案:

答案 0 :(得分: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)