【问题标题】:JQuery Load function returns 405 Method not AllowedJQuery Load 函数返回 405 Method not Allowed
【发布时间】:2014-10-14 08:42:49
【问题描述】:

我正在处理一个基于 Google App Engine (Python) 的网络应用程序。 我正在尝试从 Polymer (HTML) 元素更新 div。我需要更新的 div 实际上是元素的容器。 为此,我试图从元素的 javascript sn-p 中通过 Jquery 获取 div 对象并调用其加载方法,如

 $('#myContainerId').load('/myQueryUrl?id=123123123');

问题是我得到 405 Method Not Allowed

更新

url 通过应用程序的 yaml 文件绑定到 Python webapp.RequestHandler,该文件实现 get 方法,对 ndb 进行查询并呈现 Jinja2 模板。

更新 2

consol 日志中的错误在展开时显示:

k.cors.a.crossDomain.send 
n.extend.ajax 
n.fn.load 
(anonymous function) 
j 
k.fireWith 
x 
(anonymous function)

它说有一个跨域,尽管域实际上是相同的

【问题讨论】:

  • 请放置您的服务器代码,处理请求/myQueryUrl
  • url 通过应用的 yaml 文件绑定到 Python webapp.RequestHandler,该文件实现 get 方法,对 ndb 进行查询并呈现 Jinja2 模板。
  • 您是说 /myQueryUrl?id=123123123 吗?
  • 请检查我的进一步更新...
  • @lowcoupling 您是否注意到@r.pankevicius 提到的网址中的? 而不是&?当使用 & 作为 url 后的第一个字符时,浏览器将 id=XXX 解释为 url 的一部分

标签: jquery python google-app-engine polymer


【解决方案1】:

使用 $.ajax() 而不是 $.load() 来明确控制请求/响应。这可能会奏效(您可能需要调整参数):

$('#myContainerId').ajax({
  crossDomain: FALSE,
  type: "POST", // || GET || PUT || DELETE
  url: '/myQueryUrl?id=123123123'
});

【讨论】:

  • 现在它说“未捕获的类型错误:未定义不是函数”。go
  • 确保包含 jquery.js 文件
  • 在调用脚本之前需要加载 jQuery。
【解决方案2】:

您还可以尝试使用与使用 .POST 数据相关的更明确的方法。只要您运行的是更新版本的 JQuery。 .POST 方法 [$.post("fileHandler.php", {"..."), function(data) {...});] 可能更适合这种情况。

最终结果:

$.post("myHandler.php", {urlToReceive: jsUrlStoredVariable}, function(data) {
    //What to do when your data is returned...
});

但是,就您当前的问题而言......

由于没有错误报告,JSFiddles或代码示例已经真正提供了

【讨论】:

    【解决方案3】:
     $('#myContainerId').load('myQueryUrl?id=123123123');
    

    【讨论】:

    • 您能详细说明一下吗?
    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2021-06-14
    • 2016-12-04
    • 2014-09-03
    • 2014-04-09
    • 2020-09-22
    相关资源
    最近更新 更多