Java 本地blobstore响应的强制URL

Java 本地blobstore响应的强制URL,java,google-app-engine,Java,Google App Engine,我在我的网站上使用facebook登录。当我在本地测试时,我需要使用local.mysite.com,所以facebook认为请求来自我的网站。除了我上传图片到blobstore外,这非常有效。上载图像时,应用程序引擎始终切换到localhost:888。这使浏览器认为跨站点脚本正在发生,并阻止了我的上载。如何强制应用程序引擎使用local.mysite.com而不是localhost:888 这就是我得到的错误: XMLHttpRequest cannot load http://localh

我在我的网站上使用facebook登录。当我在本地测试时,我需要使用
local.mysite.com
,所以facebook认为请求来自我的网站。除了我上传图片到blobstore外,这非常有效。上载图像时,应用程序引擎始终切换到
localhost:888
。这使浏览器认为跨站点脚本正在发生,并阻止了我的上载。如何强制应用程序引擎使用
local.mysite.com
而不是
localhost:888

这就是我得到的错误:

XMLHttpRequest cannot load http://localhost:8888/_ah/upload/agpidWJwcm9qZWN0chsLEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18YBQw. Origin http://local.mysite.com:8888 is not allowed by Access-Control-Allow-Origin. 

我不确定你真的能改变这个网址

不过,您可以使用
localhost:8888
进行本地测试,并创建另一个指向localhost的Facebook应用程序。之后,您可以通过两种方法在应用程序中使用这两个(或将来可能更多)Facebook应用程序

  • 您可以根据请求的URL决定使用哪个键
  • 将所有密钥存储在某种配置数据存储中,只有管理员才能更改它们
使用第一种方法,您必须将所有密钥以某种方式存储在代码中,甚至更糟的是存储在数据存储中,然后根据URL决定使用哪个密钥。这种方法不好,扩展性也不好。第二种方法更可取,因为您不必在代码中存储密钥,它更安全,而且扩展性更好,因为您不需要预先知道您有多少不同的Facebook应用程序


你可以阅读关于如何用Python解决这个问题的文章,但是这个想法是Java的,所以应该没有那么难。

我在使用localhost作为facebook域时遇到了问题。Facebook认为我们正在尝试加载Facebook资源,并阻止了许多操作。@Lumpy-wird。。我从来没有在Facebook上添加任何问题,以便能够在本地测试我的登录。也许他们最近改变了一些事情。。无论哪种情况,最好将配置属性存储在数据存储中而不是代码中。