我正在使用codeigniter應用程序,該應用程序基於從我的模型中的函數返回的數據庫查詢動態生成一些html元素。來自不包含數據的php函數的XMLHttpRequest響應
在我的一個觀點中,我使用XMLHttpRequest在我的一個控制器中調用一個php函數,該函數反過來以字符串的形式從我的模型獲取數據,併爲響應文本回應它。我的JavaScript代碼如下所示:
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("POST", "/controller/my_function", true);
var postStr = "name="+proposalName+"&data="+data;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(postStr);
var response = xmlHttp.responseText;
被調用的函數如下:
public function my_function(){
$data['name'] = $this->input->post('name');
$data['data'] = $this->input->post('data');
$string = $this->my_model->my_model_function($data);
echo $string;
}
模型正確返回字符串,即使只是呼應的隨機數或字符串中的功能仍然沒有從響應文本中獲得任何信息。無論我嘗試在函數中回顯,在響應文本中都不會顯示任何內容。我在這裏做錯了什麼?我如何獲得responseText從我的php函數中獲取正確的值?
編輯:固定postStr可變
是的,我很抱歉,我在全球複製代碼有錯誤,我的真實代碼中沒有空間。 –
我改變了第三個.open參數爲false,它返回了我想要的結果,結果我唯一的錯誤是我自己誤解了函數被調用的原因!感謝您的信息,因爲我是一名仍在學習JavaScript的PHP開發人員。 –
執行同步XMLHttpRequests是一種不好的做法,在實踐中使用它之前請三思。 – 19greg96