ajax 交互问题

routes.php

Route::post('infoclass/up/{id}', 'InfoclassController@up');<br></br>

Controller

public function up(Request $id,$parentid,$orderid)
{    
    echo json_encode(array("status"=>"y","info"=>"排序提升成功"));
}<br></br>

js文件

function Promote(title,id,parentid,orderid)
{
  var title       = title;    
  var id          = id;    
  var parentid    = parentid;    
  var orderid     = orderid;    
  $.ajax({
        type: "POST",        
        dataType: "json",        
        cache: false,        
        url: title+'/up',        
        data: {
            id: id, parentid: parentid, orderid: orderid, _method:"POST"        
        },       
         success: function(data) {
            if(data.status == 'y'){
                layer.msg(data.info, {icon: 1});                location.reload();                        }else{
                layer.msg(data.info, {icon: 2});            }
         }
    })
}
<br></br>

错误:

(OZGQ1G(Y8O54KY}E_D`J9D.png

ELR5JUAYDAJDP5%$SE336AW.png

感觉是路由没有设置好么 - -,想问下哪里出问题了。

Tomoe

你的 POST 路由是

infoclass/up/{id}

但你 ajax 卻是送出

infoclass/up

少了後面 id 參數,可能匹配到別的 GET 路由例如

Route::get('infoclass/up', ...........)
假如_丶

@Tomoe 我是post传值的 在Ajax
url: title+’/up’,
data: {
id: id, parentid: parentid, orderid: orderid, _method:“POST”
},
id,parentid,orderid 参数放里面了…

Tomoe

data 裡面寫也沒用,你現在是用 post 方式提交,data 是會被包進 body 裡面,不會在網址上自動補參數,所以你網址沒給後面的 {id} ,是永遠匹配不到這段路由

Route::post('infoclass/up/{id}', 'InfoclassController@up');
Tomoe

或你乾脆改成

Route::post('infoclass/up', 'InfoclassController@up');

然後在裡面用 request 去取得 id


$request->get('id')

假如_丶

@Tomoe 这个靠谱~!谢谢了