2016-05-02 12 views
0

私はCodeIgniterで作業しています。私の問題は、Ajaxを使用してコントローラに文字列を送信しようとしたときに、他の文字列に文字列を返して返します。エラー。 JQueryライブラリは正常にロードされます。 ここに私のコードです。私は本当に何が間違っているのか分からない。 - myView.php:私のAjax関数コードは常にエラーを返します

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 

 
\t <title>myView</title> 
 
\t <script type="text/javascript" src="<?php echo base_url().'assets/js/jquery.js' ?>"></script> 
 

 
\t <script type="text/javascript"> 
 
\t $(document).ready(function() 
 
\t { 
 
\t \t $('#bttn').click(function() 
 
\t \t { 
 
\t \t \t var variable = $('#name').val(); 
 
\t \t \t $.ajax(
 
\t \t \t { 
 
\t \t \t \t type:'POST' , 
 
\t \t \t \t data:{ name : variable } , 
 
\t \t \t \t url:'<?php echo site_url('myController/message') ?>', 
 
\t \t \t \t success:function(result) 
 
\t \t \t \t { 
 
\t \t \t \t \t $('#result').html(result); 
 
\t \t \t \t }, 
 
\t \t \t \t error: function() 
 
\t \t \t \t { 
 
     \t \t \t \t $('#result').html('<p>An error has occurred</p>'); 
 
     \t \t \t } 
 
\t \t \t }); 
 
\t \t }); 
 
\t }); 
 
\t </script> 
 

 
</head> 
 

 
<body> 
 

 
\t name : &nbsp;&nbsp;&nbsp; 
 
\t <input type="text" id="name" placeholder="Name"/> 
 
\t <input type="button" value="Submit" id="bttn"/> 
 
\t <h1 id="result"></h1> 
 

 
</body> 
 

 
</html>

  • myController.php:

<?php 
 

 
class MyController extends CI_Controller 
 
{ 
 
\t public function index() 
 
\t { 
 
\t \t $this->load->view('myView'); 
 
\t } 
 

 
\t public function message() 
 
\t { 
 
\t \t $name = $this->input->post('name'); 
 
\t \t return 'Good evening Mr' . $name . '. I\'m Dr Hannibal Lecter'; 
 
\t } 
 
} 
 

 
?>

+0

ブラウザにコンソールがあります。エラーが発生した場合は、サーバーからの応答コードでコンソールにエラーメッセージが表示されます。これを出発点として使用してください。 – tilz0R

+0

コンソールにこのメッセージが表示されます: XMLHttpRequestはhttp://[:::]]/AjaxTest/index.php/myController/messageを読み込めません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。したがって、 'http:// localhost'はアクセスが許可されていません。 –

+0

あなたは多分httpsでですか?これは、httpsを使用していて、httpに移動しようとしているときに発生します。 – tilz0R

答えて

0

AJAXが期待PHPからエコーされる文字列

// echo "Good evening Mr $name. I'm Dr Hannibal Lecter'; 

public function message() 
{ 
    $name = $this->input->post('name'); 
    echo 'Good evening Mr' . $name . '. I\'m Dr Hannibal Lecter'; 
} 
+0

私はこの問題を解決しました。 :)。あなたがちょうど言ったことが私のコードの唯一のエラーではありませんでした。実際にコントローラにヘッダーがありませんでした(ヘッダー( "Access-Control-Allow-Origin:*");) –

+0

あなたが提供したコードに関する解決策を提案できました。あなた自身で多くの問題を解決するのに役立つ[この記事](https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)をチェックしてください。できるだけ適切なものにする。 – Tpojka

関連する問題