Javascript Safari浏览器截断POST参数

Javascript Safari浏览器截断POST参数,javascript,php,ajax,safari,Javascript,Php,Ajax,Safari,除了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) {

除了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 on console日志中,它显示如下内容-

-------array(2) {
  ["userName"]=>
  string(5) "vijay"
  ["passwd"]=>
  string(4) "hig"
}
-------Array
(
    [

serverAdd] => mydomain.com
    [userName] => vijay
    [passwd] => hig
)
任何猜测为什么只有Safari会这样做,即使使用iPad/iPhone和其他Safari作为浏览器的操作系统,我也面临着这个截断问题。我也读过这样的帖子,人们面临着这样的问题,然而,在那个些情况下,他们有非常大的要求,另一方面,我的只是一个小要求


有什么帮助吗?

我测试了您的代码,发现您请求的
数据类型:'text/html'
参数有问题。通常不需要指定它,jQuery足够聪明,可以理解接收结果的格式

不管怎样删除
数据类型
参数我收到了所需的输出:


我还建议您使用Charles这样的代理来查看PHP脚本获得的实际输出,这样您就可以确定javascript或服务器端是否存在问题。

您能用POST参数给出PHP代码的结果吗?你找到解决办法了吗?或者问题来自哪里?提前谢谢!不幸的是,我没能找到解决办法。PHP代码如上所述,功能非常简单。这些是您使用此功能测试的确切值,还是只是一个示例。这意味着正确的值可能会在密码中包含导致截断的特殊字符。请尝试将密钥的名称从“服务器”更改为其他名称,例如“my_domain”尝试在创建json对象时删除不必要的引号:data:{server:“mydomain.com”,用户:“vijay”,passd::highly@secret"}同时尝试将数据类型更改为“html”