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

回到顶部