1

我必须为 AJAX 动态填充解析 XML 文档。但是,我收到了这个错误。

(document).ready(function(){var departure=$('#departure'); arrival=$('#arrival');
$.ajax({type:"GET", url:"cities.xml", dataType:"xml", success: function(xml)


INFO     2013-02-22 18:16:06,951 dev_appserver.py:3092] "GET /cities.xml HTTP/1.1" 40

我的city.xml文件与加载它的模板位于同一目录中。

/templates/template_with_jquery
/templates/cities.xml

有谁知道我为什么会收到这个错误?

4

3 回答 3

1

本地 url 是相对于顶层的,而不是来自 js 文件所在的任何级别。看起来您收到了 404,因为没有<yoursite>/cities.xml.

将您的网址更改为“ /templates/cities.xml”,您应该没问题。

于 2013-02-22T18:35:24.740 回答
0

这是一个从头到尾的技术问题。不过,我必须说,我学到了关于 yaml 文件在 App Engine 中的重要性的宝贵经验。app.yaml文件中的更改如下

原来的:

1)

url: /static/xml
static_dir: static/xml
upload: static/xml

2)

url: /static/xml
static_files: static/xml
upload: static/xml/cities.xml

正确和最终:

url:/static/xml
static_dir: static/xml

我传递的上传正则表达式与任何内容都不匹配。无论如何,这只是其中之一,但似乎有一百个错误。

于 2013-02-24T22:14:42.490 回答
0

首先,这可能与 jQuery 或 XML 无关,因为您只是没有收到来自开发服务器的预期响应。

如果你去 http://[your-dev-server]/cities.xml 你也会得到一个 404,所以让我们从那里开始。

您还没有告诉我们 city.xml 是模板还是静态文件,但假设它是静态文件:

您的处理程序:

url: /updates
static_files: /templates/cities.xml 
upload: /templates/cities.xml

意味着当你去http://[your-dev-server]/updates你的服务器时会发送给你/templates/cities.xml

要获取您正在调用的 URL:http://[your-dev-server]/cities.xml您必须更改为:

url: /cities.xml
static_files: /templates/cities.xml 
upload: /templates/cities.xml

您可能还应该根据您的文件结构删除初始斜杠:

url: /cities.xml
static_files: templates/cities.xml 
upload: templates/cities.xml

如果 citys.xml 是一个静态文件,它不应该真正位于模板目录中,因为您可能希望将模板和静态文件分开。将 city.xml 与其他静态文件(如 css、js 等)放在静态目录中:

url: /static/xml
static_dir: static/xml 
upload: static/xml

这将提供可static/xml/cities.xmlhttp://[your-dev-server]/static/xml/cities.xml但也static/xml/countries.xml可在http://[your-dev-server]/static/xml/countries.xml

如果 city.xml 不是静态文件,您将不得不向我们提供更多信息。

于 2013-02-23T10:52:02.763 回答