【问题标题】:Ajax verification in laravellaravel 中的 Ajax 验证
【发布时间】:2015-09-10 13:22:23
【问题描述】:

我正在尝试做一个 ajax 验证,但我不知道为什么它不起作用。

这是我的 ajax 脚本:

<script type="text/javascript" language = "javascript">

function checkWords () {
  var status = document.getElementById("status");
  var u = document.getElementById("styled").value;
  if(u != "")
  {

    status.innerHTML = 'Verifying...';
    var hr = new XMLHttpRequest();
    hr.open("POST","/topicnou",true);
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    hr.onreadystatechange = function(){
         if (hr.readyState == 4 && hr.status == 200)
      {status.innerHTML = hr.responseText;}  

}

  var v = "name="+u;
  hr.send(v);


}
}
</script>

这是我的 php:

<?php 

if(isset($_POST['name']) && $_POST['name'] != ""){

   echo 'succes';

 }

?>

PS:购买的脚本位于 TopicNou.blade.php 中,如果你去 localhost/topicnou 可以看到。

这是在我的控制台中显示的内容:

POST http://localhost/topicnou500(内部服务器错误)

XHR 完成加载:POST "http://localhost/topicnou"。

【问题讨论】:

  • 嗯..不确定但您是否也发送了 CSRF 令牌?此外,如果您在 Mozilla 中查看 ajax 错误,您可能会获得更多见解。
  • @user3516962 我的页面上也有这个 如果你说的是这个

标签: javascript php ajax laravel


【解决方案1】:

@Uranii,

我该怎么做?

例如打开谷歌浏览器,打开你的任何laravel页面点击键盘上的f12,在打开的控制台栏中打开网络选项卡并在“名称”列中找到你打开的路径 http://prntscr.com/8emtds 比如我打开了路径mysite.com/crm/staff/auth/login,在截图中可以看到。然后在这个 Request headers 中找到 Cookie Laravel Session。复制它,你可以在你的 ajax 请求中使用它。但是,这很奇怪,比我使用 Jquery AJAX - 它可以在没有 laravel_session cookie 的情况下工作......使用 JQuery Ajax 可能会更好?

$.post('/path', {name: name, (optional) laravel_session: copied_session}, function(response){
     $(body).append(response)
})

它确实有效,即使没有 laravel_session。

【讨论】:

  • 如何在我的 ajax 请求中使用该 Cookie Laravel 会话?我不知道该怎么做..
【解决方案2】:

Laravel POST-requests 需要 Cookie 'laravel_session',例如,您可以在 chrome 网络选项卡中看到它。将它添加到您的 ajax 请求中,我认为它会起作用)

http://prntscr.com/8efuon

【讨论】:

  • 我该怎么做?
猜你喜欢
  • 2015-05-05
  • 2016-08-05
  • 2018-01-24
  • 2020-08-20
  • 2016-07-22
  • 1970-01-01
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多