ajv-validator / ajv-validator/ajv

$ref does not resolve reference to $id when domain name within $id contains capital letters

Đang mở
#1,068 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug report enhancement help wanted
Ngôn ngữ chính
TypeScript
Star
14.8k
Fork
1k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

**What version of Ajv are you using? Does the issue happen if you use the latest version?**
Happens with latest Version: 6.10.2

**Ajv options object**
None

**JSON Schema A**
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://Test.com/Schemas/testSchema.json",
"type": "object",
"additionalProperties": false,
"properties": {
"test": {
"type": "string"
}
}
}
```

**JSON Schema B that references Schema A**

```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://Test.com/Schemas/testReference.json",
"type": "object",
"additionalProperties": false,
"properties": {
"testReference": {
"$ref": "http://Test.com/Schemas/testSchema.json"
}
}
}
```

**Your code**

```javascript
...
const ajv = new Ajv({});
ajv.addSchema(schemaA);
const valid = ajv.validate(schemaB, data);
...
```

**Validation result, data AFTER validation, error messages**
```
can't resolve reference http://Test.com/Schemas/testSchema.json from id https://test.com/Schemas/testReference.json#
```

If the $id of schema is "http://Test.com/Schemas/testSchema.json", there is no possible valid reference to this $id.
Neither "$ref": "http://Test.com/Schemas/testSchema.json" nor "http://test.com/Schemas/testSchema.json" does work.
Both return "can't resolve reference ...".

**What results did you expect?**
No Error.
As the Domainname should not be case sensitive, any Definition and any Reference should work with any capital Letter.

**Are you going to resolve the issue?**
No

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.