Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从传递给应用程序的Facebook应用程序URL中获取URL片段(散列);什么是帆布?_Facebook_Url_Canvas_Hash_Fragment - Fatal编程技术网

如何从传递给应用程序的Facebook应用程序URL中获取URL片段(散列);什么是帆布?

如何从传递给应用程序的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,而不管您选

我正在facebook内部编写一个“一页”应用程序(使用canvas应用程序方法)。当用户在应用程序中移动时,我会更改位置,比如:apps.facebook.com/my app#当前位置并通过AJAX加载内容

不幸的是,当有人在浏览器中加载时,canvas应用程序看不到url片段“current”页面


我如何才能绕过这个限制?

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”或“给朋友发送电子邮件”或“书签”。