如何阅读使用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”这样的参数。