我正在与自托管的Nancy App合作,将其用作Api。
我在我的服务器上发布了它,现在我正在处理应该使用此API的网络应用。
当我请求function x(param: InterfaceOne | InterfaceTwo){
console.log(param.name); // Valid!
console.log(param.id); // Valid!
console.log(param.value); // Valid - but has the type IValue | IValue2,
// so you can only access the common fields
// of those types!
console.log(param.selected); // INVALID - InterfaceOne doesn't have a selected member
}
interface InterfaceOne {
value: IValue;
name: string;
id: number;
}
interface InterfaceTwo {
value: IValue2;
name: string;
id: number;
selected: boolean;
}
时会出现问题。
当我使用邮递员测试时,我得到了这个:
GET http://myApi:[port]/api/token
当我使用我的网络应用程序时,我会在nancy请求跟踪中得到这个:
StatusCode : 200
[StaticContentConventionBuilder]请求的资源' / api / token'与映射到' / Content'
的约定不匹配
所以,如果我明白这意味着什么:在第二次请求时,Nancy正在尝试提供静态内容,这不是我想要他做的事情,因为我只想用我的令牌发回一个json。 / p>
我遇到了一些主题,它说我们可以改变staticContentConventionsBuilder的行为,但大多数只是更改静态内容文件夹。
我确保我的请求和回复标题中应包含StatusCode : 500
。
邮递员请求和网络应用程序请求不是由同一台计算机生成的,但是属于同一网络,并且允许使用CORS。
答案 0 :(得分:0)
所以似乎在请求的标题中添加一行对我有用。
这是我添加的行:
Accept : "*/*;q=1"
这是邮递员在每次请求时发送的标题的一部分。
您可以在此处找到相关说明:
purpose of the Q value in Accept header
或在答案中提供的链接。