NetworkError:405不允许的方法AngularJS REST
在AngularJS,我有以下功能,这工作得很好:NetworkError:405不允许的方法AngularJS REST
$http.get("fruits.json").success($scope.handleLoaded);
现在我想从一个文件更改为一个URL(即使用一些返回JSON甜Laravel 4):
$http.get("http://localhost/fruitapp/fruits").success($scope.handleLoaded);
我得到的错误是:
"NetworkError: 405 Method Not Allowed - http://localhost/fruitapp/fruits"
有什么问题?是否因为fruit.json是“local”而localhost不是?
回答:
从w3:
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.
它意味着该URL:http://localhost/fruitapp/fruits
服务器响应该GET
方法是不允许的。是POST
还是PUT
?
回答:
您使用的角度js版本是< = 1.2.9。
如果是,请尝试此操作。
return $http({ url: 'http://localhost/fruitapp/fruits',
method: "GET",
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
});
回答:
我也有类似的问题,我的SpringBoot的项目,我在浏览器控制台收到同样的错误,但我看到了一个不同的错误消息,当我看着后端日志,它是引发此错误: “org.springframework.web.HttpRequestMethodNotSupportedException,消息=请求方法‘删除’不支持”原来,我是缺少在后端控制器{ID}参数:
** Wrong code :** @RequestMapping(value="books",method=RequestMethod.DELETE)
\t public Book delete(@PathVariable long id){
\t Book deletedBook = bookRepository.findOne(id);
\t bookRepository.delete(id);
\t return deletedBook;
}
** Correct code :**
@RequestMapping(value="books/{id}",method=RequestMethod.DELETE)
\t public Book delete(@PathVariable long id){
\t \t Book deletedBook = bookRepository.findOne(id);
\t \t bookRepository.delete(id);
\t \t return deletedBook;
}
回答:
对我来说,这是服务器没有被配置为CORS。 下面是我在Azure上做的:CORS enabling on Azure 我希望类似的东西也能与您的服务器一起工作。 我还发现如何在web.config上配置CORS,但不能保证:configure CORS in the web.config。一般来说,你的服务器有一个预检请求,如果你做了一个跨域请求(来自另一个不是你的服务器的url),你需要允许服务器上的所有源(Access-Control-Allow-Origin *)。
以上是 NetworkError:405不允许的方法AngularJS REST 的全部内容, 来源链接: utcz.com/qa/260501.html