在 apache下面遇到 ajax 请求405的错误,咋解决呢


请教
你们在 apache下面遇到 ajax 请求405的错误么?
如果在链接上 绑定ajax就没有问题
但是在form中绑定最后的 submit 中使用 ajax请求
就会偶尔出现 ajax 请求405的错误

我是在使用 dwz 这个前端UI框架时遇到这个问题的,很诡异

   
  <form action="#" id="home_search_from">
  
<input type="text" id="home_search_text" value="" size="40">
  
<select id="home_search_type">
<option value="A" selected="selected">加工单</option>
<option value="B">发货单</option>
<option value="C">销售单</option>
</select>
  
<input type="submit" id="home_search_btn" value="查询">
</form>

$(document).ready(function(){

// 绑定搜索区域
var home_search_text_tips = {
A: '请输入加工单号...',
B: '请输入发货单号...',
C: '请输入销售单号...'
};

$('#home_search_type').change(function(evt){
$('#home_search_text').val(home_search_text_tips[this.value]);
}).trigger('change');

$('#home_search_text').focus(function(evt){
if ($('#home_search_text').val() == home_search_text_tips[$('#home_search_type').val()] ){
$('#home_search_text').val('');
}
}).focusout(function(evt){
if ($.trim($('#home_search_text').val()) == '' ){
$('#home_search_text').val(home_search_text_tips[$('#home_search_type').val()]);
}
});

$('#home_search_from').submit(function(evt){
var search_type = $('#home_search_type').val();
var search_text = $('#home_search_text').val();

if (search_text == home_search_text_tips[search_type]){
$('#home_search_text').focus();
return false;
}

if ( $.trim(search_text) == ''){
$('#home_search_text').focus();
return false;
}

switch (search_type){
case 'A':
var qurl = '<?php echo Core_AppUtils::url('c','i'); ?>';
navTab.openTab('home_search_wo', qurl, {
data: {ids: search_text},
title: '加工单查询'
});
break;
case 'B':
var qurl = '<?php echo Core_AppUtils::url('b','i'); ?>';
navTab.openTab('home_search_io', qurl, {
data: {ids: search_text},
title: '发货单查询'
});
break;
case 'C':
var qurl = '<?php echo Core_AppUtils::url('a','i'); ?>';
navTab.openTab('home_search_so', qurl, {
data: {ids: search_text},
title: '销售单查询'
});
break;
}

return false;
});

});

这样貌似也木有问题啊 .. 网上说是 IIS里面的权限问题,但是 我们是在linux上部署的是 apache啊

求解

firefox apache Ajax

冷月D梦消逝 11 years, 10 months ago

Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,如果前端通过post方法去取一个静态文件时常常会出现“HTTP/1.1 405 Method not allowed”错误。

问题找到了 怎么解决就看你的具体场景了,比如将出错页面表单的method=“post”改为“get”也是一种很好的解决办法。

xxxxxxh answered 11 years, 10 months ago

Your Answer