This commit is contained in:
wangyidong
2016-03-23 10:35:39 +08:00
parent 565ad7ae1c
commit a015353dea
3 changed files with 27 additions and 1 deletions
+3 -1
View File
@@ -595,7 +595,9 @@ class baseHelper
*/
public static function isAjaxRequest()
{
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
$isAjax = isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
if(!$isAjax) $isAjax = (isset($_GET['HTTP_X_REQUESTED_WITH']) && $_GET['HTTP_X_REQUESTED_WITH'] == 'true');
return $isAjax;
}
/**
+1
View File
@@ -1535,6 +1535,7 @@ class baseRouter
}
unset($passedParams['onlybody']);
unset($passedParams['HTTP_X_REQUESTED_WITH']);
$passedParams = array_values($passedParams);
$i = 0;
foreach($defaultParams as $key => $defaultValue)
+23
View File
@@ -1,3 +1,4 @@
var ajaxFormUrl = '';
$.extend(
{
ajaxForm: function(formID, callback)
@@ -9,6 +10,28 @@ $.extend(
timeout : config.timeout,
dataType:'json',
beforeSubmit:function(arr, $form, options)
{
/* Check should use frame. */
var feature = {};
feature.fileapi = $("<input type='file'/>").get(0).files !== undefined;
feature.formdata = window.FormData !== undefined;
var fileInputs = $('input[type=file]:enabled', this).filter(function() { return $(this).val() !== ''; });
var hasFileInputs = fileInputs.length > 0;
var mp = 'multipart/form-data';
var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
var fileAPI = feature.fileapi && feature.formdata;
var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI;
/* Append HTTP_X_REQUESTED_WITH on url when shouldUseFrame is true. */
if(shouldUseFrame)
{
if(ajaxFormUrl == '')ajaxFormUrl = options.url;
if(options.url != ajaxFormUrl) options.url = ajaxFormUrl;
options.url = options.url.indexOf('&') >= 0 ? options.url + '&HTTP_X_REQUESTED_WITH=true' : options.url + '?HTTP_X_REQUESTED_WITH=true';
}
},
success:function(response)
{
$.enableForm(formID);