在 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 2017-02-18 16:48:44 +08:00
先别急着 json_decode ,看看你拿到的是什么值
|
3
jackmasa 2017-02-18 17:48:59 +08:00
少了 setRequestHeader ,但 XDomainRequest 正好不能执行 setRequestHeader ,所以,还是 get 吧。
|
4
abc123ccc 2017-02-18 17:50:46 +08:00 1
用 fiddler 抓包,看到底有 POST 过去数据没
|
5
foursking 2017-02-18 17:51:47 +08:00 1
enctype="multipart/form-data" 的时候 php://input 是无效的
|
6
DuckJK 2017-02-18 17:52:31 +08:00
三楼好像是长长短短大神
|
7
mingyun 2017-02-18 23:10:51 +08:00
赞同 4 楼 看是否发送请求了
|
9
abc123ccc 2017-02-20 18:01:15 +08:00
var_dump(file_get_contents('php://input'));这样也没有数据吗?
|