angular laravel nginx 400 Bad Request

时间:2016-01-04 11:14:26

标签: angularjs laravel nginx

帮助,我在POST和/或PUT方法上有400个错误,但是GET工作正常, 我使用角度作为前端和laravel作为API,我的服务器使用nginx, 我已经使用了CORS,而且我在apache上运行的本地流浪者一切正常。

我确定我的路线设置正确,这里有一些来自我使用的模块:

 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数据输入到我的db(文本类型),如果我使用application / json它返回400

请帮助

1 个答案:

答案 0 :(得分:0)

终于找到解决方案: 将$ http.post更改为:



$http({
		method: "post",
		url: $rootScope.endPoint + 'create_level',
		headers: {'Content-Type': 'application/x-www-form-urlencoded'},
		data: $.param({ .... })
	})




以某种方式它起作用,在我的登录页面上使用stellizer进行post方法,我无法在不破坏所有功能的情况下找到如何更改它...

任何人? 我只需要添加: 标题:{'内容类型':' application / x-www-form-urlencoded'} 和 数据:$ .param({......})