首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript Ajax post方法在Laravel 5中不起作用

Javascript Ajax post方法在Laravel 5中不起作用
EN

Stack Overflow用户
提问于 2017-11-08 19:50:31
回答 1查看 343关注 0票数 0

我正在研究使用JavaScript的Ajax,并希望在Laravel5.4中创建一个Ajax post方法。这些是我的文件..。

路由

代码语言:javascript
复制
Route::group(['prefix' => 'admin'],function(){
    Route::post('/ccat','PagesContrpllerController@ccat')->name('ccat');
    Route::resource('/products' , 'ProductController');
});     

ProductCategoryController

代码语言:javascript
复制
public function ccat(Request $request){
    return 'hello this is post method';
}

JavaScript

代码语言:javascript
复制
function sendfunc(name , level , parent){
    let xhr = new XMLHttpRequest(); 
    xhr.onreadystatechange = function(){
        if (xhr.readyState == 4 && xhr.status==200) {
             console.log(this.responseText);
         }
    }

    xhr.open("POST", "ccat", true);
    xhr.setRequestHeader("Content-type", "application/x-www-formurlencoded");
    xhr.send("fname=Henry&lname=Ford");
}

我期望控制台中的'hello this is the post method',但它返回:

POST http://localhost:8000/admin/product/ccat 404 (未找到)

控制台中发生了什么?即使我将URL更改为:http://localhost:8000/admin/ccat`,它也会返回:

POST http://localhost:8000/admin/ccat 500 (内部服务器错误)

感谢您的帮助,并忽略了糟糕的代码。:)

EN

回答 1

Stack Overflow用户

发布于 2017-11-09 14:42:03

我发现了我的错误,那就是缺少csrf_token,所以我添加:

代码语言:javascript
复制
<meta name="csrf-token" content="{{ csrf_token() }}" />  

获取javascript中的csrf_token,并通过以下方式将其发送到post路由:

xhr.setRequestHeader("X-CSRF-TOKEN", document.head.querySelector("[name=csrf-token]").content )

而且它起作用了。希望对其他人有用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47178985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档