POST 请求 (AngularJS $http) 出现 405 错误
405 Error with POST request (AngularJS $http)
我想使用 AngularJS $http 对 Google 联系人 API 执行 post 请求。
我试过这样做:
var config = {
headers: {
// "Content-Type": "application/json",
"Authorization": "Bearer " + gapi.auth.getToken().access_token,
"GData-Version": "3.0"
}
}
var data = {
"test": "test"
}
$http.post('https://www.google.com/m8/feeds/contacts/default/full/', data, config);
但它 returns“XMLHttpRequest 无法加载 https://www.google.com/m8/feeds/contacts/default/full/。预检响应具有无效的 HTTP 状态代码 405”
此请求正在像 Postman 这样的 RestClient 上运行(returns 201 创建)。
如果有人可以向我解释为什么浏览器不允许使用此方法。
我认为问题在于 https://www.google.com/m8/feeds/contacts
API 根本不支持 OPTIONS
请求。 405
响应本质上是说端点不支持 OPTIONS
请求,不一定不支持 POST
.
解决方案是使用 Google 自己的 JavaScript API library 而不是 Angular 的 $http
服务。
You can use the JavaScript client library to interact with Google APIs, such as People, Calendar, and Drive, from your web applications.
还有 some documentation 关于 Google 的 API 库如何支持 CORS 请求。
可能有一些 Angular 这个库的包装版本可以让你的生活更轻松,但我还没有深入研究。
我想使用 AngularJS $http 对 Google 联系人 API 执行 post 请求。
我试过这样做:
var config = {
headers: {
// "Content-Type": "application/json",
"Authorization": "Bearer " + gapi.auth.getToken().access_token,
"GData-Version": "3.0"
}
}
var data = {
"test": "test"
}
$http.post('https://www.google.com/m8/feeds/contacts/default/full/', data, config);
但它 returns“XMLHttpRequest 无法加载 https://www.google.com/m8/feeds/contacts/default/full/。预检响应具有无效的 HTTP 状态代码 405”
此请求正在像 Postman 这样的 RestClient 上运行(returns 201 创建)。
如果有人可以向我解释为什么浏览器不允许使用此方法。
我认为问题在于 https://www.google.com/m8/feeds/contacts
API 根本不支持 OPTIONS
请求。 405
响应本质上是说端点不支持 OPTIONS
请求,不一定不支持 POST
.
解决方案是使用 Google 自己的 JavaScript API library 而不是 Angular 的 $http
服务。
You can use the JavaScript client library to interact with Google APIs, such as People, Calendar, and Drive, from your web applications.
还有 some documentation 关于 Google 的 API 库如何支持 CORS 请求。
可能有一些 Angular 这个库的包装版本可以让你的生活更轻松,但我还没有深入研究。