使用$ .get()从url获取数据给我404-url manager

时间:2017-08-25 17:17:54

标签: yii2

我在index.php视图文件中有这个功能。(见下文)  正如您在单击按钮后看到的那样,它使用get方法获取数据

如果我的网址为http://example.com/admin/site-developer/ 索引

在控制台中单击按钮后出现错误

GET http://example.com/admin/site-developer/site-developer/get-note?developer_id=7 404 (Not Found)

但是如果url没有索引,那么它可以正常工作 http://example.com/admin/site-developer

如果将$。(get)url更改为

$.get("get-note",{developer_id: Id},function(data) {}

点击http://example.com/admin/site-developer后 给我

GET http://example.com/admin/get-note?developer_id=7 404 (Not Found)

错误但是如果我将url添加到url的结尾它会正常工作

这是完整的功能代码:

 $('#noteBtn').on('click',function(e) {
    $.get("site-developer/get-note",{developer_id: Id},function(data) {
       var data = JSON.parse(data);

    var elm = "";
    $.each( data, function( i, val ) {
     elm = elm+'<div id="id-'+i+'"><div>'+val.note+'</div><div>'+val.created_at+'</div></div>';
    });

    $("#developer_note").html(elm);

    })

;})

我想也许它的网址管理器问题?

这是我的网址管理员配置

   'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => false,
            'rules' => [
                '/'=>'site/index',
                'login' => 'site/login',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
            ],
        ], 

行动getnote

 public function actionGetNote($developer_id)
    {
        $model = DevelopersNote::findAll(['developer_id' => $developer_id]);
        echo Json::encode($model);
    }

1 个答案:

答案 0 :(得分:1)

似乎你的网址没有正确构建

假设你的javascript代码在php文件中

尝试使用UrlHelper

<?php 
  use yii\helpers\Url;
?>

  $('#noteBtn').on('click',function(e) {
      <?php echo  'var myUrl = "' . Url::to(['site-developer/get-note'])  .  '";
        ' ; ?> 


       $.get(myUrl ,{developer_id: Id},function(data) {
         var data = JSON.parse(data);

      var elm = "";
      $.each( data, function( i, val ) {
       elm = elm+'<div id="id-'+i+'"><div>'+val.note+'</div><div>'+val.created_at+'</div></div>';
      });

      $("#developer_note").html(elm);

      })

  ;})

检查上面代码的问题,请尝试使用这种方式

  $('#noteBtn').on('click',function(e) {
      var myUrl "http://example.com/admin/site-developer/get-note";
       $.get(myUrl ,{developer_id: Id},function(data) {
         var data = JSON.parse(data);

      var elm = "";
      $.each( data, function( i, val ) {
       elm = elm+'<div id="id-'+i+'"><div>'+val.note+'</div><div>'+val.created_at+'</div></div>';
      });

      $("#developer_note").html(elm);

      })

  ;})