我的代码在Mac OS Lion上的Safari 6.1.2以外的其他浏览器上运行得非常好。
以下是我使用的ajax帖子 -
$.ajax({
type: 'POST',
dataType: 'text/html',
url:"/MyProxy.php",
data:{"server":"mydomain.com", "user":"vijay", "passd":"highly@secret"},
error: function(data) {
console.log(data);
alert("Failure - "+data);
return;
},
success: function(data) {
console.log("Success - "+data);
parseInformation(data);
}
});
另外,出于调试目的,我在PHP服务器代码上输入了日志
header('cache-control: no-cache');
function getRealPOST() {
$pairs = explode("&", file_get_contents("php://input"));
$vars = array();
foreach ($pairs as $pair) {
$nv = explode("=", $pair);
$name = urldecode($nv[0]);
$value = urldecode($nv[1]);
$vars[$name] = $value;
}
return $vars;
}
echo "-------";
var_dump($_POST);
echo "-------";
print_r(getRealPOST());
在Safari控制台日志中,它显示类似于
的内容-------array(2) {
["userName"]=>
string(5) "vijay"
["passwd"]=>
string(4) "hig"
}
-------Array
(
[
serverAdd] => mydomain.com
[userName] => vijay
[passwd] => hig
)
任何猜测为什么Safari只有这样的行为,即使使用iPad / iPhone和其他操作系统作为浏览器的操作系统,我也面临着这种截断问题。我还阅读了人们面临这些问题的帖子,但是,在这些情况下,他们提出了非常大的要求,另一方面我的请求也很少。
任何帮助?
答案 0 :(得分:2)
我测试了您的代码,但我的请求的dataType: 'text/html'
参数存在问题。通常没有必要指定它,jQuery足够聪明,可以理解收到结果的格式。
无论如何我删除了dataType
参数我收到了所需的输出:
我还建议你使用像查尔斯https://www.charlesproxy.com这样的代理来查看PHP脚本获得的实际输出,这样你就可以弄清楚你是否在javascript或服务器端有问题。