Javascript AJAX不在服务器上传递变量(任何AJAX)
所以我有很多AJAX函数,它们在服务器和本地主机上都运行得很好,直到最近我对js文件和一些AJAX php文件做了一些更改。尽管如此,它们在本地主机上仍然工作得非常好,但在服务器上却不行 在调试期间,我发现…ajax获取文件没有问题…我的意思是没有404错误…但是…它没有传递变量 JS文件Javascript AJAX不在服务器上传递变量(任何AJAX),javascript,php,jquery,ajax,.htaccess,Javascript,Php,Jquery,Ajax,.htaccess,所以我有很多AJAX函数,它们在服务器和本地主机上都运行得很好,直到最近我对js文件和一些AJAX php文件做了一些更改。尽管如此,它们在本地主机上仍然工作得非常好,但在服务器上却不行 在调试期间,我发现…ajax获取文件没有问题…我的意思是没有404错误…但是…它没有传递变量 JS文件 function nextImg(Imgkey){ changeImgViewerN = 0; var currUrl = window.location.href; var baseUrl = currUr
function nextImg(Imgkey){
changeImgViewerN = 0;
var currUrl = window.location.href;
var baseUrl = currUrl.split(/[\\/]/).pop();
var splitUrl = baseUrl.split('&');
var folderKey = splitUrl.pop();
var groupKey = splitUrl[0];
if(groupKey == undefined) groupKey = folderKey;
$.ajax({
url:'/9712d9c1_2be4d8c9318e69_1b526557b8_sF',
type: 'POST',
data:{searchNextImg:Imgkey, groupKey:groupKey, folderKey:folderKey},
success: function(response){
$('#in_folders').prepend(response);
}
})
}
echo "Here";
if(isset($_POST['searchNextImg']) || isset($_POST['searchPrevImg'])) && isset($_POST['groupKey']) && isset($_POST['folderKey'])){
echo "Reading";
}
PHP文件
function nextImg(Imgkey){
changeImgViewerN = 0;
var currUrl = window.location.href;
var baseUrl = currUrl.split(/[\\/]/).pop();
var splitUrl = baseUrl.split('&');
var folderKey = splitUrl.pop();
var groupKey = splitUrl[0];
if(groupKey == undefined) groupKey = folderKey;
$.ajax({
url:'/9712d9c1_2be4d8c9318e69_1b526557b8_sF',
type: 'POST',
data:{searchNextImg:Imgkey, groupKey:groupKey, folderKey:folderKey},
success: function(response){
$('#in_folders').prepend(response);
}
})
}
echo "Here";
if(isset($_POST['searchNextImg']) || isset($_POST['searchPrevImg'])) && isset($_POST['groupKey']) && isset($_POST['folderKey'])){
echo "Reading";
}
但是在服务器上,它只是执行
呼应“这里”;
但不是
呼应“阅读”
我的.htaccess文件显示:
RewriteRule ^9712d9c1_2be4d8c9318e69_1b526557b8_sF$ http://www.example.com/ajaxinc/searchFile.php
还有其他AJAX函数,但它们没有将变量传递给服务器,但是在localhost上,它们工作得非常好。都是 替换:
url:'/9712d9c1_2be4d8c9318e69_1b526557b8_sF',
与
您没有在ajax调用中传递此变量searchPrevImg
,但这是处于或状态,因此不重要建议: 使用以下方法创建数据对象:
data:{'searchNextImg':Imgkey, 'groupKey':groupKey, 'folderKey':folderKey},
您有一个js语法错误: 替换:
类型:“POST”代码>按<代码>类型:'POST',
代码的其余部分看起来不错。试着像下面这样调用ajax
$.ajax({
url:'/9712d9c1_2be4d8c9318e69_1b526557b8_sF',
type: 'POST',
data:{searchNextImg:Imgkey, groupKey:groupKey, folderKey:folderKey},
async:false,
success: function(response){
$('#in_folders').prepend(response);
}
})
如何从ajax中传递此
$\u POST['searchPrevImg']
;在输入'POST'之后,这是一个输入错误……PHP中有一个OR条件,所以这无关紧要。我有一个不同的传递函数@卫星下方回显“此处”
,writeecho json\u encode($\u POST)
并检查POST中的值。尝试在else中打印一些内容,因为错误可能在if条件YES中。我没有…因此在php条件中有这个OR运算符。但它不起作用:(你试过我在回答中提到的所有东西了吗?你是类型:'POST';
应该是类型:'POST',
好的,它工作了…但是我还必须更改.htaccess文件并删除你。请解释你的答案?你到底想让我解释什么?异步:false
?为什么?可能是服务器花费的时间太长了ime响应。因此,取消ajax的默认行为以找出确切的问题。在我的例子中,这种情况发生了。这正是使用非异步操作时发生的情况。我的意思是,当服务器不响应时,浏览器将冻结等待响应。打开“开发人员工具”的“网络”选项卡,您可以看到所有请求(包括ajax请求),因此最好进行调试