在我的语言环境机器上工作,但不在服务器上工作,所以我怀疑它与* .htaccess设置有关
帖子正在进行中,在firebug中说明了http 200,但是没有响应标签。这就像是回应被忽视了。在我的语言环境设备上,这不是问题。
环境:
(我没有选择这个,这是我跳进去的项目,这是以前的工作,但现在感觉死了在水中)
按下按钮时,这是按功能调用的AJAX:
function profileUpdate(){
clearMessageContainers();
// do other things for a valid form
var formData = new FormData();
formData.append("user_fname","John");
formData.append("user_lname","Doe");
formData.append("community","Springfield");
formData.append("region","Bruce County");
formData.append("type","update_profile")
//console.log(formData);
// alert("submitHandler");
//form.submit();
$.ajax({
url: '/profile/edit/update_profile',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(msg){
$("#successContainer").append(msg);
}
,error:
function(xmlHttpRequest, status, error){
a(xmlHttpRequest + "| ajax failure: upload photo | " + status + " | error:" + error);
var xmlHttpRequestStr = "";
for(var x in xmlHttpRequest)
xmlHttpRequestStr = xmlHttpRequestStr + xmlHttpRequest[x];
console.log(xmlHttpRequestStr);
}
});
}
在ajaxHandler.php中
//simple test to confirm it made it
echo "made it";
var_dump($_POST); exit();
*。htaccess被定义为这样,并被导入到URL重写IIS
RewriteEngine on
# If it does not exist as a directory
RewriteCond %{REQUEST_FILENAME} !-d
# Line below prevents POSTS from being overwritten
#RewriteCond %{REQUEST_METHOD} !POST
#RewriteRule ^(.*)/$ /$1 [L,R=301]
#RewriteRule ^(.*)/$ /$1 [L]
RewriteRule ^.*profile/edit/(.*)$ /templates/ajaxHandler.php?type=$1
这对我的本地开发工作正常,但我使用的是apache,我读到了:
RewriteCond %{REQUEST_METHOD} !POST
允许网站不忽略或重定向POST
任何人都可以帮我解决这个问题吗?我很感激。
以下是Firebug的图像捕获,Local Dev位于顶部,Server Post位于Bottom,请注意“Response”选项卡缺失。
解决方案 - 这是服务器配置问题