gpt4 book ai didi

jQuery Ajax POST 请求通过 Laravel 作为 GET 发送

转载 作者:行者123 更新时间:2023-12-03 22:40:09 25 4
gpt4 key购买 nike

我在使用 Ajax 时遇到了一些问题。我的项目位于 Laravel 5 中,它在 Apache 上运行,并且启用了 rewrite 并且 VerifyCsrfToken 中间件已就位。我正在尝试将 POST 请求发送到项目内的另一条路线。这是我的 Ajax 的样子:

$.ajax({
url: '/add-device/',
type: 'POST',
data: form_data,
success: function(data)
{
console.log(data);
},
error: function(data)
{
console.log(data);
}
});

当我单击触发此 Ajax 的按钮时,我收到 405: MethodNotAllowed 响应。所以我进入routes.php并添加了一条GET路由。我还包括了我的 POST 路线:

Route::get('add-device', function()
{
return 'hello';
});

Route::post('add-device', [
'middleware' => 'auth',
'uses' => 'FormController@add_device'
]);

我收到“hello”消息,因此该消息以 GET 而不是 POST 的形式发送。我尝试使用 $.post 而不是 $.ajax 来强制 POST,但我仍然得到相同的行为。为了更好地衡量,这是我的 .htaccess 文件:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

由于重写规则 (/add-device),我还尝试了不带尾部斜杠的 Ajax,但收到了相同的“hello”消息。

我在开发过程中测试了所有 Ajax 请求(一半 GET,一半 POST),并且在使用 artisan 提供服务时它们工作得很好。我只是在切换到 Apache 后才出现这个问题。我已进入项目的 QA 阶段,因此我将项目移至我们的开发服务器上,该服务器在 Debian 8 上运行 Apache 2.4.10

有人对发生的事情以及如何解决有任何想法吗?

<小时/>

其他内容

Exception trace:
() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:901
Illuminate\Foundation\Application->abort() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:21
abort() at /home/debian/public_html/ZipPrinter/app/Handlers/Events/AbortTheRequest.php:28
App\Handlers\Events\AbortTheRequest->handle() at n/a:n/a
call_user_func_array() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php:327
Illuminate\Events\Dispatcher->Illuminate\Events\{closure}() at n/a:n/a
call_user_func_array() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php:218
Illuminate\Events\Dispatcher->fire() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:650
event() at /home/debian/public_html/ZipPrinter/app/Services/ZipHelper.php:56
App\Services\ZipHelper->__construct() at /home/debian/public_html/ZipPrinter/app/Services/DashHelper.php:43
App\Services\DashHelper->__construct() at /home/debian/public_html/ZipPrinter/app/Http/Controllers/DashController.php:28
App\Http\Controllers\DashController->__construct() at n/a:n/a
ReflectionClass->newInstanceArgs() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Container/Container.php:817
Illuminate\Container\Container->build() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Container/Container.php:656
Illuminate\Container\Container->make() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:644
Illuminate\Foundation\Application->make() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:161
Illuminate\Foundation\Console\RouteListCommand->getControllerMiddleware() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:142
Illuminate\Foundation\Console\RouteListCommand->getMiddleware() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:109
Illuminate\Foundation\Console\RouteListCommand->getRouteInformation() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:89
Illuminate\Foundation\Console\RouteListCommand->getRoutes() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:75
Illuminate\Foundation\Console\RouteListCommand->fire() at n/a:n/a
call_user_func_array() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Container/Container.php:523
Illuminate\Container\Container->call() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Console/Command.php:115
Illuminate\Console\Command->execute() at /home/debian/public_html/ZipPrinter/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
Symfony\Component\Console\Command\Command->run() at /home/debian/public_html/ZipPrinter/vendor/laravel/framework/src/Illuminate/Console/Command.php:101
Illuminate\Console\Command->run() at /home/debian/public_html/ZipPrinter/vendor/symfony/console/Symfony/Component/Console/Application.php:874

最佳答案

所以我删除了结尾的斜杠,它突然起作用了。我不确定为什么会这样,但确实如此。我把这个问题发到Laracasts以及。我建议那些与我有同样问题的人阅读评论和其他线程,以便他们可以按照我的步骤操作。我认为我之前的步骤之一解决了一个问题,因此当我这次删除尾部斜杠时,它起作用了。感谢大家的帮助!

关于jQuery Ajax POST 请求通过 Laravel 作为 GET 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30084123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com