Laravel REST 资源无法发布到 API

Kra*_*itz 0 php rest curl laravel laravel-5

我已经在 Laravel 中构建了一个 REST API,它目前正在使用 MAMP 在本地运行,尽管我已经在实时服务器上尝试过它并且出现了同样的问题。

当我尝试将表单发布到 API 时,它不起作用,除非我同时让 Artisan 在不同的端口号上提供该网站并发布到该 URL,即 www.mysite.com:2834/api/courses,我可以获取浏览器中的页面没有问题,只是 POST 导致了问题。

我启用了 COR,并且尝试使用 PostMan 执行相同的 POST 请求,它给出了相同的结果,即当它只是我发布到的正常 URL www.mysite.com/api/courses 时不起作用,但当我也发布时起作用在不同的端口上运行 Artisan 并发布到 www.mysite.com:2834/api/courses。

奇怪的是,当使用 CURL 完成后,POST 可以在没有 Artisan 运行的情况下工作:

         curl -i -H "X-Requested-With: XMLHttpRequest" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://www.mysite.io/api/courses  --data "&author=tertertert&name=ertertert&description=ertertret&price=ertretret"
Run Code Online (Sandbox Code Playgroud)

这是我的路线列表:

            |        | GET|HEAD                       | api/courses                                            | api.courses.index    | App\Http\Controllers\CourseController@index                | web,cors                                        |
            |        | POST                           | api/courses                                            | api.courses.store    | App\Http\Controllers\CourseController@store                | web,cors                                        |
            |        | GET|HEAD                       | api/courses/{courses}                                  | api.courses.show     | App\Http\Controllers\CourseController@show                 | web,cors                                        |
            |        | PUT|PATCH                      | api/courses/{courses}                                  | api.courses.update   | App\Http\Controllers\CourseController@update               | web,cors                                        |
            |        | DELETE                         | api/courses/{courses}                                  | api.courses.destroy  | App\Http\Controllers\CourseController@destroy              | web,cors                                        |
Run Code Online (Sandbox Code Playgroud)

和我的控制器:

            <?php

            namespace App\Http\Controllers;

            use App\Course;
            use App\Http\Requests;
            use App\Http\Requests\CourseForm;


            class CourseController extends Controller
            {
                /**
                 * Display a listing of the resource.
                 *
                 * @return \Illuminate\Http\Response
                 */
                public function index()
                {
                    $courses = Course::all();
                    return response()->json(['courses' => $courses]);
                }

                /**
                 * @param CourseForm $request
                 * @return \Illuminate\Http\JsonResponse
                 */
                public function store(CourseForm $request)
                {
                        $course = new Course();
                        $course->author = $request->input('author');
                        $course->name = $request->input('name');
                        $course->description = $request->input('description');
                        $course->price = $request->input('price');
                        $course->save();
                        return response()->json(['message' => 'Course saved']);

                }

                /**
                 * Display the specified resource.
                 *
                 * @param  int  $id
                 * @return \Illuminate\Http\Response
                 */
                public function show($id)
                {
                    $course = Course::find($id);
                    return response()->json(['course' => $course]);
                }

                /**
                 * Update the specified resource in storage.
                 *
                 * @param  \Illuminate\Http\Request  $request
                 * @param  int  $id
                 * @return \Illuminate\Http\Response
                 */
                public function update(CourseForm $request, $id)
                {
                    if($request->ajax())
                    {
                        $course = Course::find($id);
                        $course->author = $request->input('author');
                        $course->name = $request->input('name');
                        $course->description = $request->input('description');
                        $course->price = $request->input('price');
                        $course->save();
                        return response()->json(['message' => 'Course updated']);
                    }
                }

                /**
                 * Remove the specified resource from storage.
                 *
                 * @param  int  $id
                 * @return \Illuminate\Http\Response
                 */
                public function destroy($id)
                {
                    $course = Course::find($id);
                    $course->delete();
                    return response()->json(['message' => 'Course removed']);
                }
            }
Run Code Online (Sandbox Code Playgroud)

和我的路线文件:

            <?php

            Route::group(['prefix' => 'api', 'middleware' => ['cors']], function(){
                Route::resource('courses', 'CourseController', ['except' => [
                    'create', 'edit'
                ]]);
            });

            Route::group(['prefix' => 'api', 'middleware' => ['cors']], function(){

                Route::resource('test', 'HomepageController@index');
                Route::resource('projects', 'ProjectController@index');
            });



            Route::controllers([
                'auth'     => 'Auth\AuthController',
                'password' => 'Auth\PasswordController',
            ]);


            Route::group(['before' => 'auth', 'middleware' => ['auth']], function() {

            Route::get('/admin/','DashboardController@overview');



            });


                //Route::get('/test', 'HomepageController@index');
Run Code Online (Sandbox Code Playgroud)

Kra*_*itz 5

女士们先生们,以真面目手掌方式我已经弄清楚到底出了什么问题......是网址末尾的尾部斜杠把一切搞砸了。