【问题标题】:Safari browser truncating POST parametersSafari浏览器截断POST参数
【发布时间】:2014-03-04 11:56:17
【问题描述】:

我的代码在 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 和其他将 Safari 用作浏览器的操作系统中,我也面临着这个截断问题。我也读过人们面临此类问题的帖子,但是,在这些情况下,他们的请求非常大,而我的请求只是很小的请求。

有什么帮助吗?

【问题讨论】:

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

标签: javascript php ajax safari


【解决方案1】:

我测试了您的代码,但您的请求的 dataType: 'text/html' 参数存在问题。通常不需要指定,jQuery 足够聪明,可以理解接收到的结果的格式。

删除dataType 参数我还是收到了所需的输出:

我还建议您使用像 Charles https://www.charlesproxy.com 这样的代理来查看 PHP 脚本获得的真实输出,这样您就可以确定是 javascript 还是服务器端有问题。

【讨论】:

    猜你喜欢
    • 2017-01-27
    • 2018-06-28
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 2011-08-17
    相关资源
    最近更新 更多