[Interest] bug with # in URL when using setUrl?
Larry Martell
larry.martell at gmail.com
Tue Mar 15 17:04:34 CET 2016
On Tue, Mar 15, 2016 at 11:54 AM, Thiago Macieira
<thiago.macieira at intel.com> wrote:
> On terça-feira, 15 de março de 2016 11:45:12 PDT Larry Martell wrote:
>> >> QString urlStr = "http://foo.bar.com:8000/#/workitem/12345";
>> >> QUrl reportUrl(urlStr);
>> >
>> > So I'm assuming you're misusing the term and that you did want a fragment.
>>
>> I realize that using # is typically a fragment, but apparently that is
>> not how Angular uses that character. If you look at
>> http://stackoverflow.com/questions/14319967/angularjs-routing-without-the-ha
>> sh you will see what I am referring to.
>
> That page is gibberish to me. I can't understand anything of that.
Nor can I.
> To make matters short, these two URLs are different:
>
> http://foo.bar.com:8000/#/workitem/12345
> scheme = http
> authority = foo.bar.com:8000
> path = /
> fragment = /workitem/12345
>
> http://foo.bar.com:8000/%23/workitem/12345
> scheme = http
> authority = foo.bar.com:8000
> path = /#/workitem/12345
Not quite.
When http://foo.bar.com:8000/#/workitem/12345/abcd is sent by the
client (which is what happens on a Mac) what the server sees is:
POST /workitem/12345/abcd
And the request is successfully served.
But when the URL does not have the # (i.e.
http://foo.bar.com:8000/workitem/12345/abcd, which is what happens on
Windows) the server sees this:
GET /workitem/12345
And that returns a 404.
This mapping of the URL is done by the Angular code when it sees the
#. On Windows it does not get it. I tried with the %23 and that
doesn't work on either platform.
More information about the Interest
mailing list