在我的cordova app中,当我向服务器发送xhr POST请求时,当我通过SSL完成连接时,$ _POST变量为空。我的开发版本服务器不在SSL下,一切正常,另一方面,在我的运行版本中,有一个有效的SSL证书,$ _POST变量是空的。
在config.xml中,我有allow-navigation href =“*”,我没有错误地到达erver。
JS代码:
var newName = 'John Smith',
xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
if (xhr.status === 200 && xhr.responseText !== newName)
console.log( xhr.responseText);
else if (xhr.status !== 200)
console.log('Request failed. Returned status of ' + xhr.status);
};
xhr.send(encodeURI('name=' + newName));
PHP代码:
print_r($_POST);
当网址为http:
时的结果Array
(
[name] => John Smith
)
但是当网址为https:
时Array
(
)
问题是为什么它是空的,我该怎么做才能得到它?谢谢!
答案 0 :(得分:0)
以下是我找到的解决方案,我必须将目标网址从https://my-domain.com更改为https://www.my-domain.com 我想这是由于两个名称之间的服务器重定向导致我的POST数据丢失。