博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP content-type为"application/json"的post过来的数据$_POST接受不到的问题
阅读量:7010 次
发布时间:2019-06-28

本文共 548 字,大约阅读时间需要 1 分钟。

 

ajax默认是以application/x-www-form-urlencoded方式提交。也就是常见的表单提交方式。在PHP中使用$_POST方式可以轻松获取。

但如果将ajax的请求头强制指定为application/json,那么你的$_POST就接受不到了。必须使用$GLOBALS['HTTP_RAW_POST_DATA']取出来,然后再json_decode就行了。

如fetch、axios默认的请求头就是application/json,所以要注意一下。


 

还有一些的细节需要了解一下

1、后端必须允许前端定义Content-Type之类的头请求。

header('Access-Control-Allow-Headers:x-requested-with,content-type');

2、php中exit的输出只允许字符串。所以要输出什么之前最好使用(string)转义一下。

3、如果使用ajax的application/json方式,记得data参数是字符串类型的。使用JSON.stringify()转换一下。

 


 

jquery ajax的代码:

    
Document

php代码:

newsid;exit($newsid);

 

转载地址:http://vvjtl.baihongyu.com/

你可能感兴趣的文章