- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 javascript
中使用此函数与服务器 php 脚本通信:
ajax = function( url, ready, json=null, method = 'post') {
var response, request = xhr();
request.open( method, url, true );
request.onreadystatechange = function() {
if( request.readyState == 4 ) {
if( typeof ready == 'function' ){
return ready( request );
} else { return JSON.parse( request.responseText );}
}
}
if(json !== null){
request.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
return request.send( JSON.stringify( json ) );
}else { return request.send( null );}
}
在使用post 方法
打开连接后,我创建了XMLHttpRequest
。我还设置了 setRequestHeader
来解析 JSON: ("Content-Type", "application/json;charset=UTF-8");
我用这个函数来收集html 表单
中的数据
:
formToValues = function (id) {
var i, values = {}, form = document.getElementById(id);
//var fields = form.querySelectorAll('input,textarea,select'),
for (i = 0; i < form.length ;i++) {
if( form.elements[i].name !== "" ){
values[form.elements[i].name] = form.elements[i].value;
}
}
return values;
}
ajax('a.php', function(response){
console.log(response);
}, formToValues("regForm") );
这也是我的 html 表单
:
<form id="regForm" action="javascript:;" method="post" />
<p>
<label for="name">Name</label>
<input type="text" name="name" value="xhr" />
<label for="email">Email:</label>
<input type="email" name="email" value="ro@ew.gq" />
<label for="password">Password:</label>
<input type="password" name="password" value="pass" />
<input type="button" value="Search" />
</p>
现在我在 php
脚本中接收数据时遇到了一些小问题:a.php
:
<?php
var_dump( $GLOBALS );
$ar= array( "a"=>2,"b"=>3, "c"=>json_decode( $_REQUEST['params'] ));
echo json_encode($ar);
?>
似乎 php 将我从 javascrip 发送的数据作为字符串存储在 HTTP_RAW_POST_DATA
["HTTP_RAW_POST_DATA"]=>
string(51) "{"name":"xhr","email":"ro@ew.gq","password":"pass"}"
"array(7) {
["GLOBALS"]=>
array(7) {
["GLOBALS"]=>
*RECURSION*
["HTTP_RAW_POST_DATA"]=>
string(51) "{"name":"xhr","email":"ro@ew.gq","password":"pass"}"
["_POST"]=>
array(0) {
}
["_GET"]=>
array(0) {
}
["_COOKIE"]=>
array(0) {
}
["_FILES"]=>
array(0) {
}
["_REQUEST"]=>
array(0) {
}
}
现在我可以使用 php://input
获取数据,这不是问题,但我担心安全问题,而且 dos'n sems 没问题,还有一件事需要考虑:从 php 版本 5.6.0 开始。 $HTTP_RAW_POST_DATA — 原始 POST 数据已弃用~那我该怎么办?谢谢
最佳答案
当请求内容类型为 application/json
时,PHP 不会填充 $_POST 超全局(仅 application/x-www-form-urlencoded
和 multipart/表单数据
).
建议使用json_decode()
和php://input
。
关于php - $_POST var not populated instead $HTTP_RAW_POST_DATA 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27583644/
我目前正在获取 HTTP_RAW_POST_DATA 并将其保存到图像文件中。是否有任何我需要注意的可利用的安全问题? 最佳答案 安全隐患与任何其他文件上传机制相同。您可能具有语义含义,因为 POST
我最近将我的生产服务器升级到 Ubuntu 14.04 和 PHP 5.6,现在我在错误日志中收到警告: 2014/10/31 10:42:45 [error] 17128#0: *46238 Fas
我正在尝试通过 jquery-confirm 插件执行 AJAX 请求,通过其 ajax-load 函数从表单加载文件数据,然后将信息更新到 PHP 文件并最终更新到数据库. 但是,这会导致以下错误。
我正在尝试使用电子商务网站提供的脚本,该脚本从发布到我网站上的 URL 的 XML 提要中获取数据。该脚本使用....收集数据。 $requestBodyXML = new DOMDocument()
当我对 $HTTP_RAW_POST_DATA 做一个简单的回应时,我得到了错误: Undefined variable: HTTP_RAW_POST_DATA 我在 php.ini 中读到我需要取消
我切换到 PHP 5.6.0,现在到处都收到以下警告: Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated a
想在 c# 中模仿 php 代码。 我想捕获从以下 Flash Actionscript 发布的原始图像数据: function onSaveJPG(e:Event):void{
我对以下内容有些困惑,感谢您的帮助。我已经删除了这个错误检查示例的错误检查代码... 我正在运行 PHP 5.4.14 并使用 PHP 服务器... 编辑:感谢 Álvaro 的帮助,我现在可以看到问
本文分析了PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别。分享给大家供大家参考,具体如下: $_POST:通过 HTTP POST 方法传递的变量组成的数
我只是想用 JS 向服务器发送一个 POST 请求。但是服务器有空的 $_POST 数组。我可以使用 HTTP_RAW_POST_DATA,但它在 PHP 5.6 中将被弃用。我可以在我的 $_POS
$HTTP_RAW_POST_DATA 在 PHP 7.0 中被移除。在我的应用程序中,我还有以下行。我可以为此使用什么替代方案? if (isset($GLOBALS['HTTP_RAW_POST_
我在 javascript 中使用此函数与服务器 php 脚本通信: ajax = function( url, ready, json=null, method = 'post') {
我的脚本通过 POST 从桌面应用程序接收 gzip 压缩数据,它从 $HTTP_RAW_POST_DATA 检索和处理这些数据。在 PHP 5.2.16 (ISAPI) 中,$HTTP_RAW_PO
我的托管公司禁用了除 curl 之外的所有套接字功能。他们对我启用它的问题非常不负责任。我可以想到另一个主机,但我想知道以下内容。 我问了一个与此相关的问题,这是另一个问题的延续。 我无法使用 fil
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What’s the difference between POST and raw POST in PHP
您好,我在错误日志中收到此错误: "PHP 已弃用:自动填充 $HTTP_RAW_POST_DATA 已弃用,并将在未来版本中删除。为避免此警告,请在 php.ini 中将 'always_popul
您好,我在错误日志中收到此错误: "PHP 已弃用:自动填充 $HTTP_RAW_POST_DATA 已弃用,并将在未来版本中删除。为避免此警告,请在 php.ini 中将 'always_popul
在 MAMP 上使用 PHP 5.6.2。我将 Laravel 从 4.1 升级到 4.2,在按照 Laravel 升级文档中的描述修复了一些错误和更改之后,我终于得到了这个错误: “自动填充 $HT
file_get_contents("php://input") 或 $HTTP_RAW_POST_DATA - 哪一个更适合获取 JSON 请求的正文? 当使用客户端 XmlHTTPRequest
我是一名优秀的程序员,十分优秀!