我正在使用一个完全在本地工作的Laravel项目(GET,表单上的POST请求以及Ajax)。困难的部分是当我在nginx上部署它时,一切都可以工作,除了Ajax调用。我只是没有传递给我的控制器的参数。我会有像
这样的东西
$.ajax({
type: 'get',
url: '{{route('
test.route ') }}',
data: {
valuepassed: 5
},
success: function(data) {
alert(data);
}
})
控制器返回传递的值,如return Input::get('valuepassed')
或return $request->valuepassed
。我在本地运行时获取值,但在nginx上时,param为空。
这是我的配置:
server {
listen 80;
listen [::]:80;
root /var/www/html/mydomain/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name mydomain.com www.mydomain.com;
location / {
try_files $uri $uri/ /index.php?query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
PS:我是nginx的新手
答案 0 :(得分:1)
您的配置中似乎有拼写错误。以下
try_files $uri $uri/ /index.php?query_string;
应该是
try_files $uri $uri/ /index.php?$query_string;
您传递的是固定参数,而不是您从客户端获取的参数。将query_string
更改为$query_string
应修正