$ http.delete()通过AngularJS到Laravel后端API的结果为405(不允许使用方法)

用户名

我正在创建一个具有AngularJS前端和Laravel后端(设置为API)的Recipe应用程序。在查看配方的详细视图时,我希望用户可以删除配方。因此,我添加了此按钮:

<button class="btn btn-danger" ng-show="recipeData.id" ng-click="deleteRecipe(recipeData.id)">
  Delete
</button>

..需要此功能:

$scope.deleteRecipe = function(id) {
    Recipes.destroy(id)
      .success(function() {
        $location.path('/');
      })
  }

使用此服务/工厂的..:

destroy : function(id) {
      return $http.delete('/api/recipes/' + id);
    }

..应根据以下规则进行路由Laravel路由规则:

Route::group(array('prefix' => 'api'), function() {
  Route::resource('recipes', 'RecipeController');
  Route::resource('ingredients', 'IngredientController');
  Route::resource('nutrients', 'NutrientController');
  Route::resource('IngredientsByRecipe', 'IngredientsByRecipeController');
});

..并在我们的RecipeController中找到此函数,该函数应完成整理工作:

  public function destroy($id)
  {
    Recipe::destroy($id);
    return Response::json(array('success' => true));
  }

..但是以某种方式我无法使它正常工作,因为我在浏览器控制台中收到以下错误消息:

DELETE http://localhost:8000/api/recipes/4 405 (Method Not Allowed)

..但是,当我在下面通过终端运行此命令时,我没有收到任何错误,并且删除了特定配方也没有问题。

curl -v -X DELETE http://localhost:8000/api/recipes/4

仅在我运行CodeKits浏览器自动刷新工具时才会出现此问题。不知道为什么。在下面张贴两个标题,以查看是否发现任何奇怪的地方。使用CodeKit:

DELETE /api/recipes/8 HTTP/1.1
Host: marcuss-macbook-air.local:5757
Connection: keep-alive
Accept: application/json, text/plain, */*
Origin: http://marcuss-macbook-air.local:5757
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
Referer: http://marcuss-macbook-air.local:5757/edit/8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,sv;q=0.6
Cookie: __ngDebug=true; ckrp_ypos=0_0; laravel_session=eyJpdiI6IjFiVWRNSkZhK3hualwvS1FCd29SMk1vaVhJN0Q4Q1RJS1k2TDFnUHBQTWFzPSIsInZhbHVlIjoiOUtRUUFRbUJlaDcyZHJIZE1oQnphUm1wTlZiYmZoQ1VKZXdTWngwM1hLV2s3VjlrSzZ1b3E2Q0dsK1wvRk1mZlNHaG1wcWxBcjc5V2QzOVpSOXpHRElRPT0iLCJtYWMiOiJkNjliMDZjMThjYmVjZDZhZjU2N2ZmMzkwYTUzMjBmYmVlZDc4ZWVlZmFlOWY1YzE5NWYwZDIxNDkwNGU5YmRiIn0%3D

没有CodeKit:

DELETE /api/recipes/7 HTTP/1.1
Host: localhost:8000
Connection: keep-alive
Accept: application/json, text/plain, */*
Origin: http://localhost:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
Referer: http://localhost:8000/edit/7
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,sv;q=0.6
Cookie: __ngDebug=true; laravel_session=eyJpdiI6Ik5iVWpESEYyRk45Yys5REV1OUdOcHlyTXd6YkNsSFlETTFlUkVhNjdseE09IiwidmFsdWUiOiJVRlFka1hERTBmMGJQb3dBQ2YyQmIzZnNGb2hab1VldmFhUUhHeE00czdqUytmVUdXQXRDbXJPc0lTRUpGZDY2K0V3alNHejRIY0JsdkNxQ1ExdlJoZz09IiwibWFjIjoiNzQ2YzIyODRkZjQ0ZTdjODI0YzYxMTVjMzc0ZTJhM2UzZmQyM2Y4OGIwYmJkMzU2ZWNiNzU1NzgzYzBkZDY0ZSJ9

是什么原因导致我的DELETE请求通过Angular(使用CodeKit)获得405的请求,而不是通过我在终端中的curl请求或正常使用Angular获得405的原因?

提前致谢!

编码

CodeKit不支持DELETE方法。因此,这就是它与其他客户一起工作的原因。

GitHub上存在一个未解决的问题:#398

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HTTP删除,响应状态:405(不允许使用方法)

来自分类Dev

HTTP删除,响应状态:405(不允许使用方法)

来自分类Dev

不允许使用HTTP 405方法

来自分类Dev

405不允许使用方法http方法:spring-security中不支持请求方法'GET'

来自分类Dev

POST 方法错误 HTTP 405(方法不允许)

来自分类Dev

Web API放置请求生成Http 405方法不允许错误

来自分类Dev

Web.API的HTTP错误405方法不允许错误

来自分类Dev

HTTP状态405-Rest API的方法不允许错误

来自分类Dev

对API的Ajax调用返回错误HTTP / 1.1 405方法不允许

来自分类Dev

WebApi(MVC 5)PUT方法不允许使用HTTP / 1.1 405方法

来自分类Dev

WebApi(MVC 5)PUT方法不允许使用HTTP / 1.1 405方法

来自分类Dev

当我在ASP.NET WebAPI CORS中发送POST数据时,HTTP CODE 405(不允许使用方法)

来自分类Dev

当我在ASP.NET WebAPI CORS中发送POST数据时,HTTP CODE 405(不允许使用方法)

来自分类Dev

Guzzle http和Laravel Http post方法替换为get方法。405方法不允许

来自分类Dev

Spring Post:不允许使用HTTP / 1.1 405方法

来自分类Dev

不允许使用角度$ http CORS 405方法

来自分类Dev

提交登录页面后,出现“ HTTP错误405.0-不允许使用方法”错误

来自分类Dev

SOAP-UI Http状态:405-不允许传入请求的HTTP方法“ GET” ...

来自分类Dev

方法不允许http异常laravel 4

来自分类Dev

405(不允许使用方法)DELETE

来自分类Dev

405不允许使用方法

来自分类Dev

SVN意外的HTTP状态405方法不允许

来自分类Dev

在WCF服务上启用CORS。获取HTTP 405:不允许的方法

来自分类Dev

405不允许的方法:PUT http:// localhost:3030 / dataset / data?默认

来自分类Dev

如何处理Http错误405方法不允许?

来自分类Dev

405不允许的方法:PUT http:// localhost:3030 / dataset / data?默认

来自分类Dev

具有代理抛出HTTP 405方法的WebRequest不允许错误

来自分类Dev

不允许的方法(http error 405),wcf,rest service,post method

来自分类Dev

不允许使用HTTP 405-Spring Boot + Spring Security

Related 相关文章

  1. 1

    HTTP删除,响应状态:405(不允许使用方法)

  2. 2

    HTTP删除,响应状态:405(不允许使用方法)

  3. 3

    不允许使用HTTP 405方法

  4. 4

    405不允许使用方法http方法:spring-security中不支持请求方法'GET'

  5. 5

    POST 方法错误 HTTP 405(方法不允许)

  6. 6

    Web API放置请求生成Http 405方法不允许错误

  7. 7

    Web.API的HTTP错误405方法不允许错误

  8. 8

    HTTP状态405-Rest API的方法不允许错误

  9. 9

    对API的Ajax调用返回错误HTTP / 1.1 405方法不允许

  10. 10

    WebApi(MVC 5)PUT方法不允许使用HTTP / 1.1 405方法

  11. 11

    WebApi(MVC 5)PUT方法不允许使用HTTP / 1.1 405方法

  12. 12

    当我在ASP.NET WebAPI CORS中发送POST数据时,HTTP CODE 405(不允许使用方法)

  13. 13

    当我在ASP.NET WebAPI CORS中发送POST数据时,HTTP CODE 405(不允许使用方法)

  14. 14

    Guzzle http和Laravel Http post方法替换为get方法。405方法不允许

  15. 15

    Spring Post:不允许使用HTTP / 1.1 405方法

  16. 16

    不允许使用角度$ http CORS 405方法

  17. 17

    提交登录页面后,出现“ HTTP错误405.0-不允许使用方法”错误

  18. 18

    SOAP-UI Http状态:405-不允许传入请求的HTTP方法“ GET” ...

  19. 19

    方法不允许http异常laravel 4

  20. 20

    405(不允许使用方法)DELETE

  21. 21

    405不允许使用方法

  22. 22

    SVN意外的HTTP状态405方法不允许

  23. 23

    在WCF服务上启用CORS。获取HTTP 405:不允许的方法

  24. 24

    405不允许的方法:PUT http:// localhost:3030 / dataset / data?默认

  25. 25

    如何处理Http错误405方法不允许?

  26. 26

    405不允许的方法:PUT http:// localhost:3030 / dataset / data?默认

  27. 27

    具有代理抛出HTTP 405方法的WebRequest不允许错误

  28. 28

    不允许的方法(http error 405),wcf,rest service,post method

  29. 29

    不允许使用HTTP 405-Spring Boot + Spring Security

热门标签

归档