NetworkError:405方法不允许AngularJS REST

NetworkError:405方法不允许AngularJS REST,angularjs,Angularjs,在AngularJS中,我有以下功能,运行良好: $http.get( "fruits.json" ).success( $scope.handleLoaded ); 现在,我想将其从一个文件更改为一个url(使用一些甜美的Laravel 4返回json): $http.get(“http://localhost/fruitapp/fruits)成功($scope.handleload) 我得到的错误是: "NetworkError: 405 Method Not Allowed - http

在AngularJS中,我有以下功能,运行良好:

$http.get( "fruits.json" ).success( $scope.handleLoaded );
现在,我想将其从一个文件更改为一个url(使用一些甜美的Laravel 4返回json):

$http.get(“http://localhost/fruitapp/fruits)成功($scope.handleload)

我得到的错误是:

"NetworkError: 405 Method Not Allowed - http://localhost/fruitapp/fruits"
有什么问题吗?是因为fruit.json是“local”而localhost不是吗?

来自:


它表示URL的名称:
http://localhost/fruitapp/fruits
服务器正在响应不允许使用
GET
方法。这是一个
POST
还是
PUT

您使用的angular js版本可能是我的SpringBoot项目也有类似的问题,我在浏览器控制台中遇到了相同的错误,但当我查看后端日志时看到了不同的错误消息,它抛出了以下错误:“org.springframework.web.HttpRequestMethodNotSupportedException,message=Request方法'DELETE'不受支持”结果表明,我在后端控制器中缺少{id}参数:

**错误代码:**
@RequestMapping(value=“books”,method=RequestMethod.DELETE)
公共图书删除(@PathVariable long id){
Book deletedBook=bookRepository.findOne(id);
bookRepository.delete(id);
返回deletedBook;
}
**正确代码:**
@RequestMapping(value=“books/{id}”,method=RequestMethod.DELETE)
公共图书删除(@PathVariable long id){
Book deletedBook=bookRepository.findOne(id);
bookRepository.delete(id);
返回deletedBook;

}
对我来说,是服务器没有配置CORS。 以下是我在Azure上的操作: 我希望您的服务器也能使用类似的功能。
我还发现了一个关于如何在web.config上配置CORS的建议,但不能保证:。通常,有一个对服务器的飞行前请求,如果您执行了跨源请求(即来自服务器上的其他url),则需要允许服务器上的所有源(访问控制允许源*).

如果我用邮递员来获取
http://localhost/fruitapp/fruits
,状态为200 ok,内容类型为application/json,加上我得到了实际json数据的输出。这意味着…?哦,这就是Chrome\Network\Headers所说的:
请求URL:http://localhost/fruitapp/fruits 请求方法:选项状态代码:405方法未分配wed
那么这是否意味着AngularJS实际上并没有发送GET,而是发送一个选项?啊,您是否正在本地主机上运行Angular应用程序?这听起来像是一个问题,因为我现在在Chrome中,控制台说
XMLHttpRequest无法加载http://localhost/fruitapp/fruits. 访问控制允许不允许原点为null-Origin
。我正在从文件运行angular,但我的服务器是从本地主机运行的。我也需要从本地主机运行angular吗?是的,这不是AngularJS或您的代码的问题,而是在您用来提供文件的任何服务器上设置访问控制功能。如果您遇到同样的问题并找到了解决方案,您可以吗请详细说明您的解决方案并提供完整的答案?那么您是如何配置服务器以使其与CORS一起工作的?对不起,我认为它作为搜索词很有用。但我现在完成了我的答案。我可以为您提供如何在Azure上执行此操作的链接。我希望,您可以以类似的方式在您的服务器上使用它。请参见上文。
10.4.6 405 Method Not Allowed

The method specified in the Request-Line is not allowed for the resource 
identified by the Request-URI. The response MUST include an Allow header 
containing a list of valid methods for the requested resource.
return $http({                
    url: 'http://localhost/fruitapp/fruits',
    method: "GET",
    headers: {
        'Content-Type': 'application/json', 
        'Accept': 'application/json' 
    }
});