• php后台接收ajax发送post请求提交json数据的两种方式


    今天做php的一个项目,打算用jquery ajax向后台发送post类型请求,发送的数据类型是json。但是频频出错,不是报500错误,就是在后取的值为空的。几经周折才把问题解决。

    总结了两种ajax发送post请求的写法:

    前端关键代码1:

    		//变量data是我的js对象经过JSON.stringify(data)处理之后的json字符串
    		$.ajax({   
      			contentType: 'application/json; charset=utf-8', //这行可有可无都行
      			type: 'POST',
      			url: "addinvest",       //thinkphp的控制器方法
      			data: data,
       			success: function (message) {
               		console.log(message);
            	},
            	error: function (message) {
              	 	console.log(message);		
            	}
    		});
    

    后端关键代码1:

        public function addinvest(){
            $inputjson = file_get_contents('php://input');
            $obj = json_decode($inputjson);
            if(is_object($obj)){
                echo ($obj->invest_name);
            }
        }
    

    前端代码2:

    		$.ajax({   
      			// contentType: 'application/json; charset=utf-8',
    			contentType:'application/x-www-form-urlencoded', //这行可有可无都行
      			type: 'POST',
      			url: "addinvest",
    			data:{
    				  data:data,
    				//   "data":data    //也可以
    			},
       			success: function (message) {
               		console.log(message);
            	},
            	error: function (message) {
              	 	console.log(message);		
            	}
    		});
    

    后端代码2:

        public function addinvest(){
            $jsonstr =  $_POST["data"];
            $obj = json_decode($jsonstr);
            echo ($obj->invest_name);
        }
    


    需要注意:

    echo可以返回数值和字符串,但还不可以返回对象;非数组类型的json数据在后台不能转换成数组.但是可以转换成对象。

  • 相关阅读:
    个人工作总结2
    个人工作总结1
    《梦断代码》阅读笔记01
    构建之法阅读笔记4
    四则运算-安卓版
    最大联通子数组之和(dfs,记忆化搜索,状态压缩)
    第五周进度报告
    第四周进度报告
    最大子数列之和问题
    构建之法阅读笔记3
  • 原文地址:https://www.cnblogs.com/taoxiaoyao/p/12753460.html
Copyright © 2020-2023  润新知