Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
159 views
in Technique[技术] by (71.8m points)

javascript - URL() constructor add %20 in host for chrome but its not valid in firefox

I am using URL() constructor to check if URL is a valid one. https://developer.mozilla.org/en-US/docs/Web/API/URL/URL

If i run below code in chrome it added %20 after // in https:// s

let url = new URL('https:// s');
console.log(url);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Chrome is buggy here, the specs state that

  1. If url is not given:

    1. Set url to a new URL.

    2. If input contains any leading or trailing C0 control or space, validation error.

So this should be a validation error.

Unfortunately I don't know any other way to do the same (using an anchor exposes the same bug), maybe you could browserify node's implementation, but I didn't try myself.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...