AJAX Post 通过 VPN 请求剥离请求数据

AJAX Post Request over VPN stripping request data

我有一个托管在公司内部网后面的 Web 应用程序。对于任何需要远程访问的用户,当前的解决方案是让他们通过 VPN 连接,然后使用内部站点位置。

基于 PHP 的应用程序,前端基于 AJAX 请求从 PHP 后端获取信息和页面。

在内部网络中有 个请求问题,但是通过 VPN 连接几乎 80% 的 AJAX 请求失败。

发生了什么, 浏览器进行了正确的调用,并附加了所有 post 数据。服务器正在接收请求,但没有数据,然后根据需要发回失败消息。我试过只回显 $_POST 数组,但每次失败时它都是空的。

关于什么可能导致仅 post 数据在途中被剥离的任何想法? VPN 提供商是 Microsoft TMG,站点托管在 IIS 8.5 上。

编辑:下面是一些示例代码,可以让您更好地了解我所看到的内容。

JS:

var submit = 'test';

$.ajax({
        type:'POST',
        data: submit,
        url:base_url+'ajax_get_data/',
        dataType: 'json',
        timeout: 8000,
        success: function(data) {   

            // Do soemthing
        },
        error: function(e){

            // Error
        }
    });

PHP:

public function ajax_get_data(){

    var_dump($_POST);
    return;
}

在此示例中,查看来自服务器的 return 原始数据,这是检查器显示的内容:

array(0){

}

服务器实际上并未收到附加的请求数据,但客户端浏览器报告它发送了正确的请求数据。

最近终于解决了这个问题。

补充一点我后来才发现的上述 post 中遗漏的细节,该问题特定于 Apple 设备 (iOS/OS X)。

看来 Apple OS' 中一定存在错误,导致请求无法通过。 将 iOS 更新为 iOS 10 并将 OS X 更新为 macOS Sierra 已完全解决了该问题。