Php AJAX,Laravel 4.2-发布状态取消,如何发布到路线

Php AJAX,Laravel 4.2-发布状态取消,如何发布到路线,php,jquery,ajax,http,laravel,Php,Jquery,Ajax,Http,Laravel,这件事我绞尽脑汁已经有一段时间了。我有一个Jquery块,它向网站内的url发送AJAX帖子。当用户重定向离开当前页面时,就会发生此逻辑 问题是,我使用Jquery脚本在url上,我重定向到页面之外,然后在chrome中检查开发人员控制台,得到一篇状态为“取消”的帖子。我检查了数据库中的表,但它没有插入记录,所以我认为状态意味着它永远无法到达URL 定义了ajaxtest路由的路由文件 <?php Route::post('ajaxtest', array('before' =>

这件事我绞尽脑汁已经有一段时间了。我有一个Jquery块,它向网站内的url发送AJAX帖子。当用户重定向离开当前页面时,就会发生此逻辑

问题是,我使用Jquery脚本在url上,我重定向到页面之外,然后在chrome中检查开发人员控制台,得到一篇状态为“取消”的帖子。我检查了数据库中的表,但它没有插入记录,所以我认为状态意味着它永远无法到达URL

定义了ajaxtest路由的路由文件

<?php
 Route::post('ajaxtest', array('before' => 'adminFilter', 'uses' =>    'TestsController@ajaxTest'));
?>

由于
$.post
是异步方法,
$(window.unload(..)
不等待执行它并取消它。试着改变这个

$( window ).unload(function() {
    $.post("<?php echo Request::root(); ?>/ajaxtest/", { name: "John", age: "26" });
});
$(窗口)。卸载(函数(){
$.post(“/ajaxtest/”,{姓名:“约翰”,年龄:“26”});
});
为此:

$( window ).unload(function() {
    $.ajax({
        type: 'POST',
        url: '<?php echo Request::root(); ?>/ajaxtest/',
        data: { name: "John", age: "26" },
        async: false
    });
});
$(窗口)。卸载(函数(){
$.ajax({
键入:“POST”,
url:“/ajaxtest/”,
资料:{姓名:“约翰”,年龄:“26”},
异步:false
});
});
它调用类似POST的同步方法,所以浏览器应该等到它结束后再卸载。
但不建议您等待
卸载中的某个操作。它可能对用户不友好。

它可以正常工作,我现在有一个405状态(不允许使用方法),尽管我在路线上指定它为POST,但我对这个状态感到非常困惑。@MatthewUnderwood你正在卸载到同一个域吗?e、 g.您位于
http://sth.com/...
。您是否停留在同一个域
http://sth.com/...
或移动到另一个
http://newsth.com/...
卸载后?我正在卸载到同一个域。
Request URL:http://192.168.0.9/ajaxtest/
Request Headers
Provisional headers are shown
Accept:*/*
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Origin:http://192.168.0.9
Referer:http://192.168.0.9/tests/question
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
X-Requested-With:XMLHttpRequest
Form Dataview sourceview URL encoded
name:John
age:26
$( window ).unload(function() {
    $.post("<?php echo Request::root(); ?>/ajaxtest/", { name: "John", age: "26" });
});
$( window ).unload(function() {
    $.ajax({
        type: 'POST',
        url: '<?php echo Request::root(); ?>/ajaxtest/',
        data: { name: "John", age: "26" },
        async: false
    });
});