0

私はCIが初めてです。

ajaxプロセスを作ってみました。しかし、次のエラーが発生します。

NetworkError: 500 内部サーバー エラー - 要求したアクションは許可されていません

これが私のコードです

 <script type="text/javascript">
    $(document).ready(function() {
       $('#submit').click(function() {
            var form_data = {
            comment : $('#comment').val(),
            ajax : '1'
       };
       $.ajax({
          url: "<?php echo $this->config->item('base_url'); ?>comment/insert",
          type: 'POST',
          async : false,
          data: form_data,
          success: function(msg) {
           $('#emsg').html(msg);
          }
       });
      return false;
   });
 });
 </script>
 But when i access the url directly 
 <?php echo $this->config->item('base_url'); ?>comment/insert

正しく動作しています。

この問題を解決するために私を助けてください。

ありがとうございます

4

2 に答える 2

1

ここでいくつかのこと:

を使用する場合はbase_url、構成配列に割り当てたり、アクセスしたりする必要はありません。としてご利用いただけますbase_url()。そのままsite_url()URL Helperに関する CodeIgniter のドキュメントを確認してください。

そうは言っても、 onceを除いて、site_url()またはbase_url()関数を 、 または でまったく使用しないことをお勧めします。hrefsrc

<head>HTML ドキュメントの で タグを使用します<base>。と書く<base href="<?= site_url();?>">と、単に: を使用してすべてのコントローラーと関数を参照できますcontroller/function。ドキュメントに含まれるすべての相対 URL のベース URL を指定するため、site_url()またはを呼び出し続ける必要はありません。base_url()<base>

次に、500 内部サーバー エラーが発生する場合は、PHP エラー レポートが有効になっていることを確認します。コントローラー呼び出しのコンストラクターでerror_reporting(E_ALL);。エラーが発生したら、Chrome Dev Tools を使用してサーバーからの応答を調べます。ajax リクエストを起動し、開発ツールの [ネットワーク] タブに移動します。Ajax POST を見つけてクリックすると、サーバーが応答した内容を調べることができます。

于 2012-09-06T17:13:20.230 に答える
0

この問題は、次の理由により発生します

  1. 構文エラー
  2. コントローラーまたはモデルの重複機能
于 2012-09-07T02:00:01.490 に答える