将cookie中的值发送到脚本
Send a value from a cookie to a script
我的网站上的用户输入表单将值发送到位于不同服务器上的脚本:
<form action="https://mycompany.formprocessor.com/script/" method="post" name="MyForm" onsubmit="return myFunction();">
等
我正在用修改后的功能重新创建该表单。我不直接发送表单值,而是将它们保存在cookie中,然后,当某个事件发生时,我才想将该cookie中的输入值发送到作为action属性值提供的url中的脚本。
类似这样的东西:
on event {
// send cookie value to https://mycompany.formprocessor.com/script/ using "post" method;
}
如何做到这一点?
首先,您需要使用一些cookie函数将值存储在cookie中,然后访问保存在这些cookie中的输入值。以下是一些cookie函数及其使用说明:http://www.codelib.net/javascript/cookies.html
然后,您需要有一种跨域发送数据的方法。为此,我建议您使用一个包含隐藏字段的表单,然后将该表单提交到其他服务器。
像这样:
<form method="post" action="https://mycompany.formprocessor.com/script/">
<input type="hidden" id="hiddendata" name="data" />
</form>
<script>
function onEvent() { /* call this function when your desired event happens */
var cookiedata = readCookie('cookiename');
var datafield = document.getElementById('hiddendata');
datafield.value = cookiedata;
datafield.form.submit();
}
</script>
请注意,我建议您让formprocessor
上的程序返回204 No Content
作为其HTTP状态代码,这样文档本身就不会重置。否则,提交数据后,浏览器将用https://mycompany.formprocessor.com/script/
的内容替换当前页面。这是一种不阻止跨域请求的AJAX方法。
只有满足于使用GET
请求将数据发送到服务器时,以下方法才会起作用。
您可以将页面上包含的元素(如img
元素)的src
属性设置为如下URL(初始图像来自http://commons.wikimedia.org/wiki/File:1x1.png)
<img id="hiddenimage" width="1" height="1" src="1x1.png" />
<script>
function onEvent() { /* call this function when your desired event happens */
var cookiedata = readCookie('cookiename');
var dataimage = document.getElementById('hiddenimage');
dataimage.src = 'https://mycompany.formprocessor.com/script/?data=' + encodeURIComponent(cookiedata);
}
</script>
首先,您需要使用一些cookie函数将值存储在cookie中,然后访问保存在这些cookie中的输入值。以下是一些cookie函数及其使用说明:http://www.codelib.net/javascript/cookies.html
然后,您需要有一种跨域发送数据的方法。为此,我建议您使用一个包含隐藏字段的表单,然后将该表单提交到其他服务器。
像这样:
<script>
function onEvent() { /* call this function when your desired event happens */
var cookiedata = readCookie('cookiename');
var datafield = document.getElementById('hiddendata');
datafield.value = cookiedata;
datafield.form.submit();
}
</script>
请注意,我建议您让程序返回204 No Content作为其HTTP状态代码,这样文档本身就不会重置。否则,提交数据后,浏览器将用https://mycompany.formprocessor.com/script/
的内容替换当前页面。这是一种不阻止跨域请求的AJAX方法。
我即将描述另一种无需提交表格即可发送跨域请求的方式…请稍候。
只有满足于使用GET
请求将数据发送到服务器时,以下方法才会起作用。
您可以将页面上包含的元素(如img
元素)的src
属性设置为如下URL(初始图像来自http://commons.wikimedia.org/wiki/File:1x1.png)
<img id="hiddenimage" width="1" height="1" src="1x1.png" />
<script>
function onEvent() { /* call this function when your desired event happens */
var cookiedata = readCookie('cookiename');
var dataimage = document.getElementById('hiddenimage');
dataimage.src = 'https://mycompany.formprocessor.com/script/?data=' + encodeURIComponent(cookiedata);
}
</script>
您可以使用"document.cookie"获取cookie中设置的值。
更新:
var cookievalue= document.cookie;
var xmlhttp= new XMLHttpRequest();
var url="https://example.com/path?value="+cookievalue;
xmlhttp.open("POST",url,false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.send();
答案在某种程度上取决于接受值的脚本是如何设置的。对于存储和检索值,balaji的建议已经足够好了。这里的插件使存储和从cookie检索值变得非常容易。
因此,例如,如果您将值发送到的函数是这样的:
public void myFunction(firstValue, secondValue){
// logic here
}
那么你发送值的方式是这样的:
https://mycompany.formprocessor.com/script/firstValue="value_from_cookie"?secondValue="value_from_cookie"
- Chrome内容脚本制作cookie;chrome重新启动时,cookie会被删除.如何使其稳定
- 第三方脚本是否可以设置第一方cookie
- 使用 PHP 设置的 cookie 在 js 重定向和新的 PHP 脚本使用 isset 检查后不可用
- 如何在java脚本中单击时添加cookie
- C++ 使用批处理脚本清除所有浏览器 Cookie
- 编辑我的脚本并添加一个jQuery cookie以仅显示一次弹出窗口
- 当脚本从另一个域加载时,无法从 PHP 读取 Internet Explorer 中的 cookie
- 为什么我的cookie脚本不起作用
- 需要帮助才能理解此cookie脚本
- 在java脚本中删除cookie的简单方法
- 将cookie添加到现有脚本中
- Cookie脚本不工作
- 将cookie中的值发送到脚本
- 删除所有的谷歌cookie从Greasemonkey脚本
- domainA可以使用domainB上的脚本从domainB读取cookie吗?
- 检查是否有cookie设置,如果没有输出脚本
- JavaScript cookie是在函数内部创建的,还是可以在脚本本身中创建
- 为什么在请求远程脚本时添加cookie
- Jquery cookie脚本只记得复选框而不记得单选按钮
- 如何使用cookie只执行一次JS脚本