如何从传递给应用程序的Facebook应用程序URL中获取URL片段(散列);什么是帆布?
我正在facebook内部编写一个“一页”应用程序(使用canvas应用程序方法)。当用户在应用程序中移动时,我会更改位置,比如:apps.facebook.com/my app#当前位置并通过AJAX加载内容 不幸的是,当有人在浏览器中加载时,canvas应用程序看不到url片段“current”页面如何从传递给应用程序的Facebook应用程序URL中获取URL片段(散列);什么是帆布?,facebook,url,canvas,hash,fragment,Facebook,Url,Canvas,Hash,Fragment,我正在facebook内部编写一个“一页”应用程序(使用canvas应用程序方法)。当用户在应用程序中移动时,我会更改位置,比如:apps.facebook.com/my app#当前位置并通过AJAX加载内容 不幸的是,当有人在浏览器中加载时,canvas应用程序看不到url片段“current”页面 我如何才能绕过这个限制?URL片段只能在客户端(用户浏览器)上读取,因此Facebook不会也不能在向您的服务器发出POST请求时发送该片段 您所能做的是捕获具有相同路由的所有URL,而不管您选
我如何才能绕过这个限制?URL片段只能在客户端(用户浏览器)上读取,因此Facebook不会也不能在向您的服务器发出POST请求时发送该片段 您所能做的是捕获具有相同路由的所有URL,而不管您选择的服务器端语言是什么,以某种方式对它们进行编码,并将它们发送到客户端,由客户端Javascript读取,然后由客户端Javascript负责导航 示例:用户加载(注意/而不是#)。您只需提供一个页面,就可以看到(ERB)这样的内容:
MyApp.navigate(“”)代码>
导航功能可以执行以下操作:
function navigate(path) {
window.location.href = "#" + path;
}
URL片段只能在客户端(用户的浏览器)读取,因此Facebook不会也不能在向您的服务器发出POST请求时发送URL片段
您所能做的是捕获具有相同路由的所有URL,而不管您选择的服务器端语言是什么,以某种方式对它们进行编码,并将它们发送到客户端,由客户端Javascript读取,然后由客户端Javascript负责导航
示例:用户加载(注意/而不是#)。您只需提供一个页面,就可以看到(ERB)这样的内容:
MyApp.navigate(“”)代码>
导航功能可以执行以下操作:
function navigate(path) {
window.location.href = "#" + path;
}
是的,散列url很好地用于站点内的导航,但是,在共享url时就不太好了。解决方案是为每个对象创建规范URL
因此,当有人可以访问特定信息时,例如,您的服务器也有一种方法可以从中提供内容。通过这种方式,有人可以在您的站点中共享并获取正确的内容 是的,散列url很好地用于站点内的导航,但是,在共享url时就不太好了。解决方案是为每个对象创建规范URL
因此,当有人可以访问特定信息时,例如,您的服务器也有一种方法可以从中提供内容。通过这种方式,有人可以在您的站点中共享并获取正确的内容 虽然我不能正确回答你的问题,(而且我认为这已经有点过时了),但下面的信息应该可以帮助其他人更好地理解这些(散列)东西它们被称为URL片段。
任何包含#字符的URL都是片段URL。部分
#左边的URL标识了可以访问的资源
由浏览器和右侧部分下载,称为
片段标识符,指定资源中的位置:
片段不会在HTTP请求消息中发送
如果您尝试在HTTP嗅探器(如HttpWatch)中使用片段URL,
在请求的URL或Referer中永远不会看到片段ID
标题。原因是片段标识符仅由
浏览器–它不影响从服务器返回的资源
这是HttpWatch的屏幕截图,显示生成的流量
通过刷新片段URL:
虽然我不能正确回答你的问题,(而且我认为这已经有点过时了),但下面的信息应该可以帮助其他人更好地理解这些(散列)东西它们被称为URL片段。
任何包含#字符的URL都是片段URL。部分
#左边的URL标识了可以访问的资源
由浏览器和右侧部分下载,称为
片段标识符,指定资源中的位置:
片段不会在HTTP请求消息中发送
如果您尝试在HTTP嗅探器(如HttpWatch)中使用片段URL,
在请求的URL或Referer中永远不会看到片段ID
标题。原因是片段标识符仅由
浏览器–它不影响从服务器返回的资源
这是HttpWatch的屏幕截图,显示生成的流量
通过刷新片段URL:
是的,但是在我的应用程序中,如果不刷新浏览器,当用户浏览应用程序时,我将无法通过JS将url设置为。我只能将其设置为,如果有人复制了该URL并将其发送给朋友。。。不走运…我看没办法。可能会使用一些常见的UI,如“permalink”或“给朋友的电子邮件”或“书签”。是的,但在我的应用程序中,如果用户浏览应用程序而不刷新浏览器,我将无法通过JS将url设置为。我只能将其设置为,如果有人复制了该URL并将其发送给朋友。。。不走运…我看没办法。可能会使用一些常见的UI,如“permalink”或“给朋友发送电子邮件”或“书签”。