Jquery Ajax Post类型不能与zend框架IE 7/8一起使用

时间:2013-07-31 06:09:54

标签: php jquery ajax zend-framework

我正面临着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进行身份验证

4 个答案:

答案 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