JavaScript可以't访问我的查询API

JavaScript can't access my query API

本文关键字:访问 我的 查询 API 可以 JavaScript      更新时间:2023-09-26

我用谷歌应用引擎构建了一个应用程序:

  1. 查询URL(例如http://myapp.appspot.com/query?name="SomeName"&start_date="2012-01-01"
  2. 接收JSON响应。此JSON响应包含来自同一域中我的自己的数据存储的数据
  3. 使用该响应绘制图表

app.yaml配置具有以下行:

- url: /.*
  script: main.py

其中,在main.py中,我分配了要由类QueryHandler处理的URL query

如果我在线运行应用程序,一切都很好。但是,如果我使用离线开发服务器运行应用程序,我将无法收到JSON响应。

在离线测试时,我还将我的在线数据存储复制到离线开发服务器中。我可以确认它运行得很好,因为我有其他脚本可以查询它,它们运行得很不错。唯一的问题是JavaScript图表。

尝试的解决方案

  1. 如果我将查询URL更改为http://localhost:8080/query?name="SomeName"&start_date="2011-01-01",则图表显示良好
  2. 如果我坚持在云http://myapp.appspot.com/query?name="SomeName"&start_date="2012-01-01"上查询URL,我就无法呈现图表

目标

我希望能够随时查询云URL,而不必将域更改为localhost。从长远来看,当我决定开放一个公共的API时,这将对我有用。有办法做到这一点吗?或者这只是对开发服务器的限制?

您的javascript应该始终从加载位置查询回服务器。

使用CCD_ 9和CCD_;源服务器端口。

由于您显然控制着生成JSON的服务器,您可以通过提供JSONP来解决SOP问题,这并不是什么额外的工作。只需检查回调参数,并将输出封装在作为回调传递的函数名中。参见JSONP。