php - Ajax 数据未发送到控制器功能(Laravel)
问题描述
我将id
dom 元素作为ajax
数据发送到 laravel 控制器,但Request
控制器端的对象为空。我已返回自定义数组以ajax
检查控制器功能是否正常工作,并且它正在返回对ajax
成功的响应。
同一控制器上的其他函数从但不是这个函数获取Request
数据。ajax
我没有收到任何错误,因此很难调试问题
我的阿贾克斯电话
$(document).on('click', 'i[id^="delete"]', function () {
var alias_id = $(this).prop('id');
//console.log(alias_id);
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: "{{ route('deletealiasname') }}",
method: "post",
data: {'alias_id': alias_id},
dataType: "json",
contentType: false,
cache: false,
processData: false,
beforeSend : function()
{
console.log(alias_id);
},
success: function (response) {
console.log(response);
}
});
});
路线:
Route::post('/deletealiasname', 'API\UserProfileController@deleteAliasName')->name('deletealiasname');
控制器:
public function deleteAliasName(Request $request)
{
$var = $request->all();
return array($var);
}
dd($request) 的输出
POST http://127.0.0.1:8000/api/deletealiasname
----------------------------------------------
------------ ----------------------------------------------------
date Thu, 06 Jun 2019 17:52:53 +0000
controller "UserProfileController"
source UserProfileController.php on line 165
file app\Http\Controllers\API\UserProfileController.php
------------ ----------------------------------------------------
Illuminate\Http\Request {#43
#json: null
#convertedFiles: null
#userResolver: Closure($guard = null) {#282
class: "Illuminate\Auth\AuthServiceProvider"
this: Illuminate\Auth\AuthServiceProvider {#40 …}
parameters: {
$guard: {
default: null
}
}
use: {
$app: Illuminate\Foundation\Application {#2 …}
}
file: "C:\project\newglit\myglit\vendor\laravel\framework\src\Illuminate\Auth\AuthServiceProvider.php"
line: "83 to 85"
}
#routeResolver: Closure() {#284
class: "Illuminate\Routing\Router"
this: Illuminate\Routing\Router {#26 …}
use: {
$route: Illuminate\Routing\Route {#221 …}
}
file: "C:\project\newglit\myglit\vendor\laravel\framework\src\Illuminate\Routing\Router.php"
line: "650 to 652"
}
+attributes: Symfony\Component\HttpFoundation\ParameterBag {#45
#parameters: []
}
+request: Symfony\Component\HttpFoundation\ParameterBag {#44
#parameters: []
}
+query: Symfony\Component\HttpFoundation\ParameterBag {#51
#parameters: []
}
+server: Symfony\Component\HttpFoundation\ServerBag {#47
#parameters: array:29 [
"DOCUMENT_ROOT" => "C:\project\newglit\myglit\public"
"REMOTE_ADDR" => "127.0.0.1"
"REMOTE_PORT" => "56590"
"SERVER_SOFTWARE" => "PHP 7.1.29 Development Server"
"SERVER_PROTOCOL" => "HTTP/1.1"
"SERVER_NAME" => "127.0.0.1"
"SERVER_PORT" => "8000"
"REQUEST_URI" => "/api/deletealiasname"
"REQUEST_METHOD" => "POST"
"SCRIPT_NAME" => "/index.php"
"SCRIPT_FILENAME" => "C:\project\newglit\myglit\public\index.php"
"PATH_INFO" => "/api/deletealiasname"
"PHP_SELF" => "/index.php/api/deletealiasname"
"HTTP_HOST" => "127.0.0.1:8000"
"HTTP_CONNECTION" => "keep-alive"
"CONTENT_LENGTH" => "15"
"HTTP_CONTENT_LENGTH" => "15"
"HTTP_ACCEPT" => "application/json, text/javascript, */*; q=0.01"
"HTTP_ORIGIN" => "http://127.0.0.1:8000"
"HTTP_X_REQUESTED_WITH" => "XMLHttpRequest"
"HTTP_USER_AGENT" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safar
i/537.36"
"CONTENT_TYPE" => "text/plain;charset=UTF-8"
"HTTP_CONTENT_TYPE" => "text/plain;charset=UTF-8"
"HTTP_REFERER" => "http://127.0.0.1:8000/user/profile/"
"HTTP_ACCEPT_ENCODING" => "gzip, deflate, br"
"HTTP_ACCEPT_LANGUAGE" => "en-US,en;q=0.9,nb;q=0.8"
"HTTP_COOKIE" => "XSRF-TOKEN=eyJpdiI6IkdPR0NtcGNXdEJxKzVwZERheEZSMlE9PSIsInZhbHVlIjoiXC9EbHBHSXM2U0c1TzdjUHhOT25BZ1RQeXdzd3l0WGFw
bmNhWWduakJFRU9ubVBcL3pJdzJMcTI1SCtqQnR4Sk05IiwibWFjIjoiYjk4Mzk3M2ZiOGJlOGZkOGNmYjk1NjBjZGQzNTY3YzIzOWUwNzliNDdjNjNhMzRhODZkOThmZGI2NzU
3MDc2OCJ9; laravel_session=eyJpdiI6IktNaHlnY29BZnI3VUlEcHpnUU1vU2c9PSIsInZhbHVlIjoiUkxWTkVWdHlLcEZGY0FDOXAxMWdaNHROa2szSUY3ZlhWRm94V2ox
ZWZSYlc4SDdcL3FSdUlVNGZ0YkFreHl4VHQiLCJtYWMiOiJlOGQ0MjYwZTRiN2ZkOTQwYWRmNTcxNjYyNTY0YmYyZjY5MjBkN2E3ZWMxZGM3YWViYzQ4ODcxYzUyZTg0MTE3In0
%3D"
"REQUEST_TIME_FLOAT" => 1559843573.3443
"REQUEST_TIME" => 1559843573
]
}
+files: Symfony\Component\HttpFoundation\FileBag {#48
#parameters: []
}
+cookies: Symfony\Component\HttpFoundation\ParameterBag {#46
#parameters: array:2 [
"XSRF-TOKEN" => "eyJpdiI6IkdPR0NtcGNXdEJxKzVwZERheEZSMlE9PSIsInZhbHVlIjoiXC9EbHBHSXM2U0c1TzdjUHhOT25BZ1RQeXdzd3l0WGFwbmNhWWduakJF
RU9ubVBcL3pJdzJMcTI1SCtqQnR4Sk05IiwibWFjIjoiYjk4Mzk3M2ZiOGJlOGZkOGNmYjk1NjBjZGQzNTY3YzIzOWUwNzliNDdjNjNhMzRhODZkOThmZGI2NzU3MDc2OCJ9"
"laravel_session" => "eyJpdiI6IktNaHlnY29BZnI3VUlEcHpnUU1vU2c9PSIsInZhbHVlIjoiUkxWTkVWdHlLcEZGY0FDOXAxMWdaNHROa2szSUY3ZlhWRm94V2o
xZWZSYlc4SDdcL3FSdUlVNGZ0YkFreHl4VHQiLCJtYWMiOiJlOGQ0MjYwZTRiN2ZkOTQwYWRmNTcxNjYyNTY0YmYyZjY5MjBkN2E3ZWMxZGM3YWViYzQ4ODcxYzUyZTg0MTE3In
0="
]
}
+headers: Symfony\Component\HttpFoundation\HeaderBag {#49
#headers: array:12 [
"host" => array:1 [
0 => "127.0.0.1:8000"
]
"connection" => array:1 [
0 => "keep-alive"
]
"content-length" => array:1 [
0 => "15"
]
"accept" => array:1 [
0 => "application/json, text/javascript, */*; q=0.01"
]
"origin" => array:1 [
0 => "http://127.0.0.1:8000"
]
"x-requested-with" => array:1 [
0 => "XMLHttpRequest"
]
"user-agent" => array:1 [
0 => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
]
"content-type" => array:1 [
0 => "text/plain;charset=UTF-8"
]
"referer" => array:1 [
0 => "http://127.0.0.1:8000/user/profile/"
]
"accept-encoding" => array:1 [
0 => "gzip, deflate, br"
]
"accept-language" => array:1 [
0 => "en-US,en;q=0.9,nb;q=0.8"
]
"cookie" => array:1 [
0 => "XSRF-TOKEN=eyJpdiI6IkdPR0NtcGNXdEJxKzVwZERheEZSMlE9PSIsInZhbHVlIjoiXC9EbHBHSXM2U0c1TzdjUHhOT25BZ1RQeXdzd3l0WGFwbmNhWWduak
JFRU9ubVBcL3pJdzJMcTI1SCtqQnR4Sk05IiwibWFjIjoiYjk4Mzk3M2ZiOGJlOGZkOGNmYjk1NjBjZGQzNTY3YzIzOWUwNzliNDdjNjNhMzRhODZkOThmZGI2NzU3MDc2OCJ9;
laravel_session=eyJpdiI6IktNaHlnY29BZnI3VUlEcHpnUU1vU2c9PSIsInZhbHVlIjoiUkxWTkVWdHlLcEZGY0FDOXAxMWdaNHROa2szSUY3ZlhWRm94V2oxZWZSYlc4SD
dcL3FSdUlVNGZ0YkFreHl4VHQiLCJtYWMiOiJlOGQ0MjYwZTRiN2ZkOTQwYWRmNTcxNjYyNTY0YmYyZjY5MjBkN2E3ZWMxZGM3YWViYzQ4ODcxYzUyZTg0MTE3In0%3D"
]
]
#cacheControl: []
}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/api/deletealiasname"
#requestUri: "/api/deletealiasname"
#baseUrl: ""
#basePath: null
#method: "POST"
#format: null
#session: null
#locale: null
#defaultLocale: "en"
-isHostValid: true
-isForwardedValid: true
basePath: ""
format: "html"
}
解决方案
我想问题出在method:"post"
因为它不是method
对象,它实际上是一个type
.
type:"post"
试试这个
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: "{{ route('deletealiasname') }}",
type: "post",
data: {'alias_id': alias_id},
dataType: "json",
contentType: false,
cache: false,
processData: false,
beforeSend : function()
{
console.log(alias_id);
},
success: function (response) {
console.log(response);
}
});
正如你所说,你正在使用laravel 5.8
. 因此您可以在终端中启动转储服务器进行调试。jsut在终端中点击命令php artisan dump-server
和dd(#request)
看看数据是否到来。
我确定它的问题在于method:"post"
只需将其更改为type:"post"
推荐阅读
- c# - C# Linq 查询 List 以查看值是空还是 null
- linux - 如何在 imx8mn 上设置外部 rtc 时间和日期(pcf85263)
- docker - 使用 Docker Swarm 的 HAProxy
- mongodb - 从谷歌云功能连接到 mongodb atlas 时出现不一致的连接错误
- python - 访问被拒绝:pip freeze > requirements.txt
- angularbuild - 有人可以帮我解决角度“无法读取未定义的属性'长度'中的错误”吗?
- flutter - Android Studio 未检测到 Flutter 中的错误
- typescript - Ionic Vue 移动应用程序未连接到本地 API
- image - Safari 不为 SVG 加载异物图像
- python - 工厂男孩 RecursionError:超出最大递归深度