couchdb angularJS http服务回调错误响应没有有用信息
couchdb angularJS http service callback error response has no useful information
我正在尝试使用 AngularJS http 服务编写一些 CouchDB TypeScript 类。该调用适用于快乐路径,但我无法从服务器返回状态代码或 json 错误信息。当然这是我真正需要给用户的信息。
public createDb(name: string, callback: Function) {
let url = this.urlPrefix + name;
let cbData: CouchStatus = new CouchStatus;
this.http.put(url).then((response: any) => {
cbData.httpStatus = response.status;
if (response.data.ok === true) {
cbData.ok = true;
} else {
cbData.ok = false;
cbData.error = response.data.error;
cbData.reason = response.data.reason;
}
callback(cbData);
}, (httpError: any) => {
cbData.ok = false;
cbData.httpStatus = httpError.status;
cbData.error = httpError.data;
console.log("createDb: " + cbData.error);
});
}
Couchdb returns 状态为“400 错误请求”
Headers:
Access-Control-Allow-Origin → chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
Access-Control-Expose-Headers → Cache-Control, Content-Type, Server
Cache-Control → must-revalidate
Content-Length → 197
Content-Type → text/plain; charset=utf-8
Date → Sun, 17 Apr 2016 01:15:49 GMT
Server → CouchDB/1.6.1 (Erlang OTP/R16B02)
body有:
{
"error":"illegal_database_name",
"reason":"Name: 'fooBar'. Only lowercase characters (a-z), digits (0-9),
and any of the characters _, $, (, ), +, -, and / are allowed. Must begin
with a letter."
}
谢谢
敲了一大堆头,发现是CORS的问题。选项方法导致错误。不确定发生了什么,但这是另一天的问题。
我正在尝试使用 AngularJS http 服务编写一些 CouchDB TypeScript 类。该调用适用于快乐路径,但我无法从服务器返回状态代码或 json 错误信息。当然这是我真正需要给用户的信息。
public createDb(name: string, callback: Function) {
let url = this.urlPrefix + name;
let cbData: CouchStatus = new CouchStatus;
this.http.put(url).then((response: any) => {
cbData.httpStatus = response.status;
if (response.data.ok === true) {
cbData.ok = true;
} else {
cbData.ok = false;
cbData.error = response.data.error;
cbData.reason = response.data.reason;
}
callback(cbData);
}, (httpError: any) => {
cbData.ok = false;
cbData.httpStatus = httpError.status;
cbData.error = httpError.data;
console.log("createDb: " + cbData.error);
});
}
Couchdb returns 状态为“400 错误请求”
Headers:
Access-Control-Allow-Origin → chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
Access-Control-Expose-Headers → Cache-Control, Content-Type, Server
Cache-Control → must-revalidate
Content-Length → 197
Content-Type → text/plain; charset=utf-8
Date → Sun, 17 Apr 2016 01:15:49 GMT
Server → CouchDB/1.6.1 (Erlang OTP/R16B02)
body有:
{
"error":"illegal_database_name",
"reason":"Name: 'fooBar'. Only lowercase characters (a-z), digits (0-9),
and any of the characters _, $, (, ), +, -, and / are allowed. Must begin
with a letter."
}
谢谢
敲了一大堆头,发现是CORS的问题。选项方法导致错误。不确定发生了什么,但这是另一天的问题。