【问题标题】:Get request and query string获取请求和查询字符串
【发布时间】:2014-07-19 18:36:10
【问题描述】:

我正在尝试通过 ajax 调用从我的路线中获取一些信息。我必须查询我需要在路由中获取的字符串。

$.ajax({
    url: '/servers',
    type: 'GET',
    data: {ip: serverIp, port: serverPort},
})
.done(function() {
    console.log("success" + data);
})

但是,控制台返回 404。我不确定如何在我的路由中准确获取此请求。

Route::get('/servers', function(){
         $ip = Input::get('ip');
         $port = Input::get('port');
         return $ip . $port; // checking if it works
});

最终这将是对路由器到控制器的请求,但我只是想让 ajax 请求首先工作。我做错了什么?

【问题讨论】:

  • 我没有使用 laravel 的经验,但看起来这些示例在开头省略了 /。你试过吗?

标签: jquery laravel laravel-routing


【解决方案1】:

你可以试试这个来检索POST/GET输入:

$ip = Input::get('ip');
$port = Input::get('port');

但在这种情况下(对于串起的查询),您的 URI 应该包含它们,例如:

http://example.com/servers?ip=serverIp&port=serverPort

所以,将它们与您的 URL 一起传递给 ajax

// query string: ?ip=serverIp&port=serverPort
url: '/servers?ip='+serverIp+'&port='+serverPort

如果您使用POST 请求并且可能应该使用,在这种情况下您可以尝试以下操作:

$.ajax({
    url: '/servers',
    type: 'POST',
    data: {ip: serverIp, port: serverPort}
})
.done(...)

从POST 检索数据的服务器端代码保持不变,只需将路由声明更改为post。在Laravel 网站上查看更多信息 (Retrieving An Input Value)。

【讨论】:

  • 您好,谢谢,遗憾的是它仍然返回 404。GET localhost/servers?ip=ip.com&port=25555 404(未找到)
  • 你用的是哪一个? POST 还是 GET?你的route 和声明是什么?
  • 使用Route::post(...) 代替Route::get(...) 并使用相同的JS 代码,但将type: 'GET' 更改为type: 'POST'。
猜你喜欢
  • 1970-01-01
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 2020-03-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
相关资源
最近更新 更多