我有一个深层链接的Silverlight RIA尝试使用Twitter OAuth回调。 RIA中的回调“页面”的URL为:
http://example.com/RiaTestPage.aspx#callback
只要#符号经过URL编码,Twitter便会回调该URL。所以我提供给Twitter的回调网址是:http://example.com/RiaTestPage.aspx%23callback
RiaTestPage.aspx当然确实存在,但是当Twitter回叫该URL时,我得到了404(来自VS 2010 ASP.NET开发服务器)尽管在上面的错误消息中已正确解码了#号,但404似乎是已编码的#号的结果。如果我手动更改导致404的回调网址,
http://example.com/RiaTestPage.aspx%23callback
对此:http://example.com/RiaTestPage.aspx#callback
RIA中的回调页面正常加载。为什么在这种情况下会收到404? 最佳答案
您收到404错误,因为#callback
部分不是URL的一部分。它是浏览器使用的书签,并且永远不会在请求中发送到服务器。如果您对哈希进行编码,则它将成为文件名的一部分,并且没有名为RiaTestPage.aspx#callback
的文件。