php ajax post 数据到php数据接收不到

ajax提交数据,获取不到提交的数据 - ThinkPHP框架
{userName: &&, password: &123456&, picType: &s&, weixin: &1.0&, system: &iphone&}
以上是提交的数据
以下是PHP代码
if(IS_POST){
$post_data=I('post.');
print_r($post_data);
打印出来是空数组,是为什么呢?
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。php中学习Ajax时$_POST 取不到值? - 知乎5被浏览953分享邀请回答110 条评论分享收藏感谢收起Ajax POST方式发送请求服务器接收不到数据问题解决办法
作者:用户
本文讲的是Ajax POST方式发送请求服务器接收不到数据问题解决办法,
直接看源码
&script language=&javascript&&
function setViewPoint() {
var msg =&&; //用于接
直接看源码
&script language="javascript"&
function setViewPoint() {
var msg =""; //用于接收返回数据
//实例化Ajax
var leeAjax = leeInitAjax();
var webRoot = window.
webRoot = webRoot.toString();
var domain = webRoot.substring(7);
var endD = domain.indexOf("/");
domain = domain.substring(0,endD);
//接收表单的URL地址
var url = "http://"+domain+"/plus/leeGetViewForWay.php";
//通过Post方式打开连接
leeAjax.open("POST", url, true);
//定义传输的文件HTTP头信息
leeAjax.setRequestHeader("Content-Type","application/x-www-form-charset=gbk");
//需要POST的值,把每个变量都通过&来联接
//发送POST数据
var postStr = "viewId='asdf'&id='asdfa'"
leeAjax.send(postStr);//获取执行状态
leeAjax.onreadystatechange = function() {
//如果执行状态成功,那么就把返回信息写到指定的层里
if (leeAjax.readyState == 4 && leeAjax.status == 200) {
msg = leeAjax.responseT//获取的返回值
alert(msg);
function leeInitAjax() {
var leeAjax=
if( window.ActiveXObject ){
for( var i = 5; i-- ){
if( i == 2 ){
leeAjax = new ActiveXObject( "Microsoft.XMLHTTP" );
leeAjax = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
} catch(e) {
} else if( window.XMLHttpRequest ) {
leeAjax = new XMLHttpRequest();
if (leeAjax.overrideMimeType) {
leeAjax.overrideMimeType('text/xml');
} catch(e) {
return leeA
php 代码如下:
$a = $_REQUEST ["viewId"].")___(".$_REQUEST["id"];
if($_POST ["viewId"]=="") $a .= "&br/&___";
于是在构建发送数据时由字符串改成了JS对象,可是还是不行。只好查资料了。原来是要设置一下发送数据的编码类型的。代码如下:
var Myquery = Myinput();
xmlhttp.open("POST","post.php",true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.onreadystatechange =
xmlhttp.send(Myquery);application/x-www-form-urlencoded编码类型是表单发送数据的默认编码类型,想不到在AJAX请求中要明确注明,这样添加了第三行的代码注明格式后果然就正确了,问题解决。如果通过JQUERY发送POST方式的AJAX请求就方便多了,不用添加这一行。再一次感受到了JQUERY的强大和便捷。
想用POST发送Ajax异步请求,就要把你的数据统一放在send()方法中发送,而不能是send(null)。
Xml.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
这一句在GET方式中不要写,但是在POST方式中是必须的,由于你在POST方式中用了send(null),导致没有发送任何数据到index1.php,所以看不到这一句的效果。
get('index1.php?c=1',a)"
get('index1.php?c=2',a)"
两个按钮发送的数据只有c这个参数不同,所以可以把index1.php和a都写在你这个get方法的内部,修改以后的get方法是这样的
function get(num)
data="index1.php?";
var obj=document.getElementById("a");
Xml.open("POST",data);
Xml.onreadystatechange=function()
if(Xml.readyState==4&&Xml.status==200){
obj.innerHTML=Xml.responseT
Xml.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var queryString="c="+
Xml.send(queryString);
get('index1.php?c=1',a)"
get('index1.php?c=2',a)"
也要相应的改成
这样就可以成功地用POST方法向服务器异步请求数据了
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ajax
xmlhttprequest
服务器接收post请求、服务器解析post请求、服务器接收不到post、服务器处理post请求、ajax请求服务器重定向,以便于您获取更多的相关知识。
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
开发者常用软件,超百款实用软件一站式提供
云栖社区()为您免费提供相关信息,包括
,所有相关内容均不代表云栖社区的意见!无法接收POST表单数据 - 问答 - Yii Framework 中文社区
无法接收POST表单数据
6174次浏览
悬赏 10 金钱
我定义一个实体 无法获取POST过来的表单数据,代码如下:
namespace app\
use app\models\FormM
use yii\web\C
use yii\web\R
use yii\web\R
class FormController
extends Controller {
public $enableCsrfValidation =
public function
actionIndex()
$this-&layout=
return $this-&render("index",[]);
public function
actionPost()
$model=new FormModel();
$model-&load($_POST);
$model-&attributes=$_POST;
echo json_encode($model-&name);
namespace app\
use yii\db\ActiveR
class FormModel extends ActiveRecord {
public static function tableName()
return 'formmodel';
public function rules()
[['name', 'name'], 'required'],
['id', 'id'],
&!DOCTYPE html&
&meta charset="utf-8"/&
&meta name="viewport" content="width=device-width"/&
&title&用户登录&/title&
&script src="/static/js/vendor/jquery-2.1.3.min.js"&&/script&
&form id="form1" method="post" action="/form/post"&
id:&input type="text" name="id"/&&br/&
name:&input type="text" name="name"/&&br/&
&input type="button" id="btn" value="sumbit"/&
&script type="text/javascript"&
$(function () {
$("#btn").click(function () {
type: 'POST',
url: "/form/post",
data: $("#form1").serialize(),
success: function (data) {
dataType: "html"
4、视图对应表SQL
CREATE TABLE `formmodel` (
`id` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Exception 'ReflectionException' with message 'Class id does not exist'
in E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\di\Container.php:415
Stack trace:
#0 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\di\Container.php(415): ReflectionClass-&__construct('id')
#1 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\di\Container.php(358): yii\di\Container-&getDependencies('id')
#2 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\di\Container.php(151): yii\di\Container-&build('id', Array, Array)
#3 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\BaseYii.php(344): yii\di\Container-&get('id', Array, Array)
#4 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\validators\Validator.php(204): yii\BaseYii::createObject(Array)
#5 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(422): yii\validators\Validator::createValidator('id', Object(app\models\FormModel), Array, Array)
#6 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(386): yii\base\Model-&createValidators()
#7 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(184): yii\base\Model-&getValidators()
#8 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(715): yii\base\Model-&scenarios()
#9 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Model.php(659): yii\base\Model-&safeAttributes()
#10 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\base\Component.php(169): yii\base\Model-&setAttributes(Array)
#11 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\vendor\yiisoft\yii2\db\BaseActiveRecord.php(266): yii\base\Component-&__set('attributes', Array)
#12 E:\Soft\PHP\yii\yii-basic-app-2.0.3\basic\controllers\FormController.php(25): yii\db\BaseActiveRecord-&__set('attributes', Array)
#13 [internal function]: app\controllers\FormController-&actionPost()
表单名称命名不符合yii规范,
id:&input type="text" name="id"/&
id:&input type="text" name="[您的Model]id"/&
url: "/form/post",有错误
1.检查点击是否做ajax提交了
2.后台试着输出POST过去的数据,看看是不是你php代码有问题
$model=new FormModel();这个有东西么?
您需要登录后才可以回答。 |

我要回帖

更多关于 ajax post 数据到php 的文章

 

随机推荐