在Nginx上没有填充Ajax GET参数

时间:2017-08-20 07:11:29

标签: ajax nginx laravel-5.2

我正在使用一个完全在本地工作的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的新手

1 个答案:

答案 0 :(得分:1)

您的配置中似乎有拼写错误。以下

try_files $uri $uri/ /index.php?query_string;

应该是

try_files $uri $uri/ /index.php?$query_string;

您传递的是固定参数,而不是您从客户端获取的参数。将query_string更改为$query_string应修正