在 ie8 ,很奇怪的现象, host 设置了 ip 到域名后,是能拿到请求数据的。但是不设置 host ,服务器有 cdn ,再访问 php 就拿不到请求参数了,谁知道这是为什么吗?
js 代码:
var requestData = JSON.stringify(formData);
xdr = new XDomainRequest();
xdr.open("post",url);
xdr.timeout = 10000;
xdr.onprogress = function(){};
xdr.onerror = function(){};
xdr.ontimeout = function(){};
xdr.onload = function(){
alert(xdr.responseText);
}
xdr.send(requestData);
php 相关代码:
header('Access-Control-Allow-Origin:*');
$arrRequest = json_decode(file_get_contents("php://input"),true);
var_dump($arrRequest);
1
qiayue PRO 先别急着 json_decode ,看看你拿到的是什么值
|
3
jackmasa 2017 年 2 月 18 日
少了 setRequestHeader ,但 XDomainRequest 正好不能执行 setRequestHeader ,所以,还是 get 吧。
|
4
abc123ccc 2017 年 2 月 18 日 用 fiddler 抓包,看到底有 POST 过去数据没
|
5
foursking 2017 年 2 月 18 日 enctype="multipart/form-data" 的时候 php://input 是无效的
|
6
DuckJK 2017 年 2 月 18 日
三楼好像是长长短短大神
|
7
mingyun 2017 年 2 月 18 日
赞同 4 楼 看是否发送请求了
|
9
abc123ccc 2017 年 2 月 20 日
var_dump(file_get_contents('php://input'));这样也没有数据吗?
|