我正面临着IE8 / 7中的一个奇怪的问题(一如既往),但这一次它已经出现了zend框架......下面我解释了它..
问题,
当我在zend框架1.X中使用jquery ajax方法时,如果我使用'type: 'POST'
那么我的zend控制器将不会检测参数值,而不是显示空白.. < / p>
例如在我的zend控制器中
`echo $this->_request->getParam('aData');` //echo nothing
但如果我使用类型:'GET'所有参数都会在我的zend控制器中正常显示。
echo $this->_request->getParam('aData'); //echoing parameter values
$.ajax({
type: 'GET',
dataType: 'json',
url: "/xhr_process/commentsave/",
data: aData,
success:function(aResponse){
console.log(aResponse);
}
});
这只是在IE 8/7其他所有浏览器都正常工作
欣赏想法!!
更新
我已将CACHE设置为false,但未成功
console.log(aData); Object { sCommentText="wewewewew", iComponent="1"}
更新2
我们正在使用NTML进行身份验证
答案 0 :(得分:0)
注意与post和get方法的区别(getParam()
和getPost()
方法):
使用帖子:
echo $this->_request->getParam('aData'); //echoes nothing
echo $this->_request->getPost('aData'); //echoes aData value
使用get:
echo $this->_request->getParam('aData'); //echoes aData value
echo $this->_request->getPost('aData'); //echoes nothing
答案 1 :(得分:0)
当你通过ajax作为post变量发送数据时,你需要将数据作为urlencoded string:提交,你也需要在你的ajax调用中设置他们输入post
data: "aData="+aData
或类似的方式是一个对象。
data: {aData: aData}
jQuery将处理将数据正确编码到http post主体中。
$.ajax({
type: 'POST',
dataType: 'json',
url: "/xhr_process/commentsave/",
data: {aData: aData},
success:function(aResponse){
console.log(aResponse);
}
});
答案 2 :(得分:0)
echo $this->_request->getParam('aData'); //echoing parameter values
<script type="text/javascript">
$.ajax({
type: 'GET',
dataType: 'json',
url: "/xhr_process/commentsave/",
data: {'aData':aData},
success:function(aResponse){
console.log(aResponse);
}
});
</script>
use this code it will work because i am also using this code for IE7 & 8
答案 3 :(得分:0)
“您无法将任何数据发布到混合的NTLM和非NTLM经过身份验证的网站。在您访问网站的一个经过NTLM身份验证的文件夹后,Microsoft Internet Explorer需要对网站的所有访问进行NTLM身份验证。”
$_POST variables coming through empty in IE7 for one subfolder