[英]angular laravel nginx 400 Bad Request
帮忙,我在POST和/或PUT方法上遇到400错误,但是GET正常工作,我使用angular作为前端,使用laravel作为API,我的服务器使用nginx,我使用了CORS,而且一切正常在我正在本地运行的本地流浪汉上。
我确定我的路由设置正确,这是我使用的模块中的一部分:
Route::group(array('prefix'=>'/api', 'middleware' => 'cors'),function(){
Route::post('/create_level', 'LevelController@store');
Route::get('/read_level', 'LevelController@index');
Route::get('/read_level/{id}', 'LevelController@show');
Route::put('/read_level/{id}', 'LevelController@update');
Route::delete('/read_level/{id}', 'LevelController@destroy');
这是我的角度服务的一部分:
app.service("edulevelService", function ($http, $q, $rootScope)
{
edu.updateEdulevel = function(id, edu){
var deferred = $q.defer();
$http.put($rootScope.endPoint + 'read_level/'+ id, edu)
.success(function(res)
{
deferred.resolve(res);
})
.error(function(err, stat){
deferred.reject(err);
console.log('error code: Ser-UEDU');
});
return deferred.promise;
}
edu.createEdulevel = function(edu){
var deferred = $q.defer();
$http.post($rootScope.endPoint + 'create_level', edu)
.success(function(res)
{
deferred.resolve(res);
})
.error(function(err, stat){
deferred.reject(err);
console.log('error code: Ser-CEDU');
});
return deferred.promise;
}
....
哦,我忘了提及不同的方法,导致不同的错误代码POST导致405,PUT引起400,并且我尝试使用Postman:POST正在使用文本类型工作,并使用application / json返回405,但是当我尝试PUT方法时,即使它返回200我仅将NULL数据输入到我的数据库(文本类型),如果我使用application / json,则返回400
请帮忙
终于找到解决方法:将$ http.post更改为:
$http({ method: "post", url: $rootScope.endPoint + 'create_level', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, data: $.param({ .... }) })
它以某种方式工作,在我的登录页面上显示出来,该页面使用stellizer进行发布方法,我找不到如何更改它而不破坏所有功能...
任何人? 我只需要添加:标头:{'Content-Type':'application / x-www-form-urlencoded'}和数据:$ .param({......})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.