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 已完全解决了该问题。
我有一个托管在公司内部网后面的 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 已完全解决了该问题。