帮助,我在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
请帮助
答案 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({......})