我想使用AngularJS $ http。
在Google Contacts API上发布帖子请求我试着这样做:
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);

但它返回" XMLHttpRequest无法加载https://www.google.com/m8/feeds/contacts/default/full/。预检的响应包含无效的HTTP状态代码405 "
此请求在Postman等RestClient上正在运行(返回201创建)。
如果有人可以向我解释为什么浏览器不允许使用此方法。
答案 0 :(得分:1)
我认为问题是https://www.google.com/m8/feeds/contacts
API根本不支持OPTIONS
次请求。 405
响应主要是说端点不支持OPTIONS
请求,不一定是不支持POST
。
解决方案是使用Google自己的JavaScript API library而不是Angular的$http
服务。
您可以使用JavaScript客户端库与Web应用程序中的Google API(例如人员,日历和云端硬盘)进行互动。
关于Google API库如何支持CORS请求,还有some documentation。
这个库可能有一些Angular包装版本,可以让你的生活更轻松,但我没有挖过。