【问题标题】:Jquery Validator and Laravel 4 ajax issueJquery Validator 和 Laravel 4 ajax 问题
【发布时间】:2013-10-05 04:12:32
【问题描述】:

我正在尝试使用 Jquery Validator 验证 laravel 4 中的表单,我唯一无法执行的操作是远程验证电子邮件。

我用我的浏览器尝试了以下

http://example.com/validacion/email/info@info.com 

我得到了我想要的结果(在 json 中)。

//Routes.php 
Route::get('validacion/email/{email}', 'ValidatorController@getValidacionEmail');

//In my JS the rule of email is
         email: {
            required: true,
            email: true,
            remote: {
                url: "/validacion/email/",
                type: "get",
                data: {
                    email: "akatcheroff@gmail.com"
                },
                complete: function(data) {
                    if (data.responseText !== "true") {
                        alert(data.respuesta);
                    }
                }
         }

当我使用 Firebug 时,我得到了这个位置

http://example.com/validacion/email/?email=akatcheroff%40gmail.com

和一个 301 代码,然后是一个 500 和这个错误

{"error":{"type":"Symfony\Component\HttpKernel\Exception\NotFoundHttpException","message":"","file":"C:\Users\Usuario\Dropbox\Public\sitios\ futbol\vendor\laravel\framework\src\Illuminate\Routing\Router.php","line":1429}}

有人知道是否有办法以路由识别的方式发送我的邮件参数吗?

谢谢!

【问题讨论】:

  • 尝试删除 ajax url url: "/validacion/email", 末尾的斜杠并删除路由上的 {email} 参数。

标签: jquery ajax laravel


【解决方案1】:

问题

你指定的路由validacion/email/{email}会处理如下路由:

(1)http://mysite.com/validacion/email/info@info.com (就像您在 Firefox 中尝试过的一样。)

当你的 ajax 运行时,你最终(就像 firebug 转储的那样)使用以下网址:

(2)http://mysite.com/validacion/email/?email=info@info.com

现在请注意 url 12 之间的区别。第一个将电子邮件值作为 url 的一部分。第二个将电子邮件值作为查询字符串的一部分。

Laravel 抛出的错误是路由器找不到与 url 匹配的处理程序。

解决方案

你可以通过改变你的javascript来解决这个问题:

remote: {
    url: "/validacion/email/" + "info@info.com",
    type: "get"
}

从查询字符串中删除电子邮件并将其添加到路径中。

或者,你可以通过改变你的 PHP 路由来解决它:

Route::get('validacion/email', 'ValidatorController@getValidacionEmail');

然后在getValidacionEmail 中,您可以使用以下方式从查询字符串中获取电子邮件:

$email = Input::get('email');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-17
    • 2013-07-08
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 2014-12-08
    • 2013-07-09
    相关资源
    最近更新 更多