Javascript jQuery AJAX post数据由于在laravel中的路由而丢失

Javascript jQuery AJAX post数据由于在laravel中的路由而丢失,javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,我正在尝试使用ajax将ID传递给PHP脚本。当使用以下各项时,它工作正常: var baseURL = '/W4W/public/'; function voteUp(){ var snippetID = document.getElementById('snippetID').innerHTML; voteThing('vote_up', snippetID); } function voteThing(URL, snippetID){ $.ajax({ type: "P

我正在尝试使用ajax将ID传递给PHP脚本。当使用以下各项时,它工作正常:

var baseURL = '/W4W/public/';

function voteUp(){
    var snippetID = document.getElementById('snippetID').innerHTML;
voteThing('vote_up', snippetID);
}

function voteThing(URL, snippetID){
$.ajax({
    type: "POST",
    url: URL,
    data: {codesnip_id: snippetID},
    success: function(data) {
                    $.ajax({
            type: "POST",
            url: "updateVotes",
            data: {codesnip_id: snippetID}
            success: function(data1) {}
        });
        }
    }); 
}
PHP路由和PHP脚本:

Route::post('codesnippet/{codesnip_id}/vote_up', array('uses' => 'VoteController@votedUp'));

public function votedDown($codesnip_id){
        // Some irrelevant code for this issue
}
但当我使用以下路线时:

Route::post('vote_down', array('uses' => 'VoteController@votedDown'));
以及以下javascript:

function voteDown(){
    var snippet_ID = document.getElementById('snippetID').innerHTML;
    URLS = baseURL + 'vote_down';
    voteThing(URLS, snippet_ID);
数据永远不会到达PHP脚本。我得到以下错误: }


所以我猜我在路由上做错了什么,导致了数据丢失。但是我不知道它可能是什么。也无法在任何地方找到和详细说明数据到达您的php脚本,因为您的php脚本引发异常

您的vote_down函数需要参数$codesnip_id

votedDown($codesnip_id)
但在你的路线上,你并没有像投票那样通过任何争论

因此,取而代之的是从发布的formdata中获取$codesnip_id,因为ajax将数据作为发布数据而不是url的一部分传递

votedDown() {
   $codesnip_id=$_POST['codesnip_id'];
   ...
}

这是您的
votedDown
方法

public function votedDown($codesnip_id){
    // Some irrelevant code for this issue
}
根据错误消息,您没有传递所需的参数,因此使用
url
作为url中的第二个参数传递参数,如下所示:

var snippet_ID = document.getElementById('snippetID').innerHTML;
URLS = baseURL + 'vote_down/' + snippet_ID;
voteThing(URLS);
在这种情况下,路线应为:

Route::post('vote_down/{id}', array('uses' => 'VoteController@votedDown'));
或者,您可以在现在传递时将其传递到
POST
,但从方法中删除
$codesnip\u id
,因此它可以是:

public function votedDown(){
    $codesnip_id = Input::get('snippet_ID');
}

在这种情况下,
snippet\u ID
应该类似于
'snippet\u ID='+snippet\u ID

URL的值是多少?
public function votedDown(){
    $codesnip_id = Input::get('snippet_ID');
}