如何阅读使用JavaScript的发布请求参数
我正在尝试从我的HTML阅读发布请求参数。 我可以在javascript中使用下面的代码读取获取请求参数。
$wnd.location.search
但它不适用于post request.Can任何人都可以告诉我如何阅读我的HTML使用JavaScript中的发布请求参数值。
POST数据是服务器端处理的数据 。 而Javascript是在客户端。 所以你不可以使用JavaScript读取发布的数据。
一小段PHP来让服务器填充一个JavaScriptvariables是快速和容易的:
var my_javascript_variable = <?php echo $_POST['my_post'] ?>;
然后以正常方式访问JavaScriptvariables。
JavaScript是一种客户端脚本语言,这意味着所有的代码都在Web用户的机器上执行。 POSTvariables,另一方面,去服务器,并驻留在那里。 浏览器不会将这些variables提供给JavaScript环境,开发人员也不希望他们神奇地在那里。
所以读取POSTvariables几乎是不可能的。 GETvariables是一个侥幸,因为它们在URL中,这是客户端机器知道的东西。
但是,如果服务器响应将它们回显到脚本中,则可以读取POSTvariables的值。
为什么不使用localStorage或其他方式来设置您想要传递的值?
这样你可以从任何地方访问它!
POST是浏览器从客户端(您的浏览器)发送到Web服务器的内容。 发布数据通过http头发送到服务器,并且它只能在服务器端或从客户端(浏览器)到networking服务器的path(例如代理服务器)之间使用。 所以不能从JavaScript这样的客户端脚本处理。 您需要通过像CGI,PHP,Java等服务器端脚本来处理它。如果您仍然需要使用JavaScript编写代码,那么您需要有一个能够在您的服务器上理解和执行JavaScript的Web服务器,比如Node.js
你可以用jQuery-PostCapture( @ ssut / jQuery-PostCapture )读取post request参数。
PostCapture插件是由一些技巧组成的。
当你点击提交button时, onsubmit
事件将被分派。
当时,PostCapture将序列化表单数据并保存到html5 localStorage(如果可用)或cookie存储。
如果同一浏览器首先发送POSTvariables,则POSTvariables只能用于浏览器。 如果另一个网站表单通过POST提交到另一个URL,浏览器将不会看到POST数据进来。
站点A:使用POST SITE B将表单提交到外部URL(站点B):将只接收访问者,但只有GETvariables
$(function(){ $('form').sumbit{ $('this').serialize(); } });
在jQuery中,上面的代码会给你带有URL参数的URLstring。 提取POST参数并不是不可能的。
要使用jQuery ,你需要包含jQuery库。 为此使用以下内容:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"></script>
我们可以使用序列化概念收集使用POST提交的表单参数。
尝试这个:
$('form').serialize();
只要将它附上警报,它将显示包括隐藏的所有参数。
你可以读一个服务人员。 但是,这要求他们之前已经在该页面上,并且早些时候注册了服务人员。 您还需要在https或localhost上运行该页面才能正常工作
你可以'json_encode'首先通过PHP编码你的后期variables。 然后从JSON编码的后期variables创build一个JS对象(数组)。 然后使用JavaScript循环来操作这些variables…就像在下面这个例子中填充一个HTML表单一样:
<script> <?php $post_vars_json_encode = json_encode($this->input->post()); ?> // SET POST VALUES OBJECT/ARRAY var post_value_Arr = <?php echo $post_vars_json_encode; ?>;// creates a JS object with your post variables console.log(post_value_Arr); // POPULATE FIELDS BASED ON POST VALUES for(var key in post_value_Arr){// Loop post variables array if(document.getElementById(key)){// Field Exists console.log("found post_value_Arr key form field = "+key); document.getElementById(key).value = post_value_Arr[key]; } } </script>
function getParameterByName(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); } var formObj = document.getElementById("pageID"); formObj.response_order_id.value = getParameterByName("name");
<head><script>var xxx = ${params.xxx}</script></head>
在<head>
使用ELexpression式$ {param.xxx}从post方法中获取参数,并确保js文件包含在<head>
这样您就可以直接在js文件中处理像“xxx”这样的参数。