2013-07-31 70 views
0

我面臨一個奇怪的問題,在IE8/7(一如既往),但這一次它出現了 - 與zend框架..下面我已經解釋它..Jquery Ajax帖子類型不工作與zend框架IE 7/8

問題,

,當我使用jQuery AJAX方法Zend框架1.X像下面,如果我使用'type: 'POST'則因爲這是我的Zend控制器將無法檢測到的參數值,而不是它是顯示空白..

例如在我的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今後其他所有的瀏覽器工作正常

欣賞的想法!

UPDATE

我已經設置緩存,以假那不是成功

console.log(aData); Object { sCommentText="wewewewew", iComponent="1"} 

更新2

我們使用NTML用於身份驗證

+2

你使用的是什麼版本的jquery 2.0支持IE 8及更低版本。 – Orangepill

+0

它是1.7.2 .. tnx評論btw –

+0

在aData上做一個console.log它在這些瀏覽器中給你什麼... – Orangepill

回答

0

「你不能發佈任何數據混合NTLM和非NTLM身份驗證的網站,微軟的Internet Explorer需要到網站的所有訪問NTLM身份驗證您訪問的網站的一個NTLM身份驗證文件夾後。 「

$_POST variables coming through empty in IE7 for one subfolder

+0

確切的問題是NTML謝謝! –

0

公告與職位的差異並獲得方法(getParam()getPost()方法):

使用後:使用get

echo $this->_request->getParam('aData'); //echoes nothing 
echo $this->_request->getPost('aData'); //echoes aData value 

echo $this->_request->getParam('aData'); //echoes aData value 
echo $this->_request->getPost('aData'); //echoes nothing 
+0

感謝您的回答,但仍然沒有運氣.. –

0

當你通過AJAX,你需要提交的數據無論是作爲urlencoded的字符串:,也變量後發送數據你需要設置它們輸入您的Ajax調用post

data: "aData="+aData 

或多少類似的方式是作爲n對象。

data: {aData: aData} 

jQuery將處理正確的數據編碼到http post主體。

$.ajax({ 
     type: 'POST', 
     dataType: 'json', 
     url: "/xhr_process/commentsave/", 
     data: {aData: aData}, 
     success:function(aResponse){ 
      console.log(aResponse); 
     } 
}); 
+0

感謝您的回答,我已經嘗試過這個仍然沒有運氣..順便說一句,我們正在使用NTML進行身份驗證的目的,也許這可能是這個問題在這個 –

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