XDomainRequest 发送 post 请求, PHP ://input 都拿不到值

2017-02-18 16:10:36 +08:00
 liuxu

在 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);
3420 次点击
所在节点    PHP
11 条回复
qiayue
2017-02-18 16:48:44 +08:00
先别急着 json_decode ,看看你拿到的是什么值
liuxu
2017-02-18 17:24:29 +08:00
@qiayue var_dump(file_get_contents("php://input"));也是空的
jackmasa
2017-02-18 17:48:59 +08:00
少了 setRequestHeader ,但 XDomainRequest 正好不能执行 setRequestHeader ,所以,还是 get 吧。
abc123ccc
2017-02-18 17:50:46 +08:00
用 fiddler 抓包,看到底有 POST 过去数据没
foursking
2017-02-18 17:51:47 +08:00
enctype="multipart/form-data" 的时候 php://input 是无效的
DuckJK
2017-02-18 17:52:31 +08:00
三楼好像是长长短短大神
mingyun
2017-02-18 23:10:51 +08:00
赞同 4 楼 看是否发送请求了
liuxu
2017-02-20 09:20:48 +08:00
@abc123ccc @mingyun 抓包了,请求参数是发出去了,但是到 php 就是没有东西
abc123ccc
2017-02-20 18:01:15 +08:00
var_dump(file_get_contents('php://input'));这样也没有数据吗?
liuxu
2017-02-20 18:04:50 +08:00
@abc123ccc 问题解决了,被新加的网站安全系统拦截了我的请求
phpinfo
2017-02-20 18:19:58 +08:00
@liuxu ....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341415

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX