我使用ExtJS来执行AJAX请求。这是我的密码
Ext.Ajax.request({
url: 'TestServer',
method: 'PUT',
params: {
json: Ext.encode({
name: 'dummy'
})
}
});
所以我决定从servlet获取请求参数。所以我使用了
request.getParameter("json")
但是我得到一个空值。当我使用POST方法时,它工作得很好,但不是PUT。在使用 PUT 方法时,有没有其他方法可以在 servlet 中获取请求参数?
来自Ext.Ajax 4.1文档:
method : String用于请求的默认HTTP方法。请注意,这是区分大小写的,应该全部大写(如果未设置,但参数存在,将使用“POST”,否则将使用“GET”)。)
文档没有提到允许 PUT,但也没有提到不允许 PUT。
此外,还有一些文档解释了如何使用 HTTP 方法重写使 servlet 调用服务映射到 PUT 或删除。
有人建议使用HTTP方法覆盖,而不是简单地直接使用PUT或DELETE,再加上Ext.Ajax文档省略了其他HTTP方法选项,这一事实强烈表明,使用Ext是不可能的。
这似乎很奇怪,考虑到这对于原始XmlHttpRequest甚至jQuery AJAX都是非常可能的。
但是,利用JavaScript的动态类型和功能特征,可以使用以下来自此论坛帖子的代码轻松覆盖/扩展默认的Ajax功能:
Ext.lib.Ajax.request = function(method, uri, cb, data, options) {
if(options){
var hs = options.headers;
if(hs){
for(var h in hs){
if(hs.hasOwnProperty(h)){
this.initHeader(h, hs[h], false);
}
}
}
if(options.xmlData){
this.initHeader('Content-Type', 'text/xml', false);
method = (options.method == 'PUT' ? 'PUT' : 'POST');
data = options.xmlData;
}else if(options.jsonData){
this.initHeader('Content-Type', 'text/javascript', false);
method = (options.method == 'PUT' ? 'PUT' : 'POST');
data = typeof options.jsonData == 'object' ? Ext.encode(options.jsonData) : options.jsonData;
}
}
return this.asyncRequest(method, uri, cb, data);
};
// example request
Ext.Ajax.request({
url: 'testrest.php',
method: 'PUT',
headers: {'Content-Type': 'text/xml'},
success: function(response, opts) { Ext.Msg.alert('Sucess', 'Update has been successful'); },
xmlData: '<blah>de</blah>'
});
最后,也不清楚您正在使用哪个版本的Ext,上面的代码示例来自2007年。您可能需要修改 AJAX 请求,使其使用 jsonData(代替其 xmlData)而不是使用参数,因为参数似乎不包含在覆盖/扩展操作中。此外,论坛中的一位发帖人提到,如果存在参数,则默认使用POST,无论指定了什么。因此,这是考虑改用 jsonData 的另一个原因。
如果jsonData不能满足您的需求,那么您可以始终遵循本代码示例作者演示的示例,修改Ext.Ajax副本,以便在提交参数时包含“PUT”请求。
我目前正在创建一个基于此小提琴的动态下拉列表 除了我试图调用JSON文件之外,我一直在跟进。我的代码如下: ]; 范围metro可以工作,但是当连接到JSON文件时,其余的就不能工作了。我假设它会工作,因为它实际上是相同的结构。我做错了什么? [编辑] 正如你们中的一些人所回答的那样,在我进行上述操作之前,我最初尝试了这种http注入: 这不起作用,所以我试了另一种方法。所以我假设它与JSON赋值
问题内容: 我最近问了另一个(相关的)问题,这导致了后续问题: 通读jQuery.ajax()文档(http://api.jquery.com/jQuery.ajax/),似乎可接受的dataTypes列表不包含图像。 我正在尝试使用jQuery.get(如果需要的话,也可以使用jQuery.ajax)来检索图像,将此图像存储在Blob中,然后在POST请求中将其上传到另一台服务器。当前,由于数据
我正在使用codeigniter rest服务器api库。 我进去的时候http://localhost/RESTapi/api/question?X-API-KEY=XXX在Postman中使用我得到的PUT方法:{“status”:false,“error”:“无效的API键”} 它与GET方法配合得很好如何解决此问题?
作为一个应用程序的一部分,我正在工作,我想提供一个假期列表。我试图使用谷歌API来做到这一点。在编写代码之前,我只想看看返回的JSON是什么样子的。 我在谷歌建立了一个帐户,得到了一个API密钥,并被设置为使用谷歌日历API。我对获取假期列表所需的HTML进行了研究,但似乎无法使其工作。我浏览了所有的日历API文档,但没有找到任何关于检索假日列表的内容。以下是我尝试的一些URL和收到的回复。我在网
我正在使用演示APi(http://dummy.restapiexample.com/update) 我有一个响应类UpdateResponse 我有一个Api类和一个APIInterface 和对话框而不是主活动 在APIInterface中使用PUT方法有一个@path(id)和三个@fields(name、salary、age) 下面是UpdateResponse类代码 Api接口代码如下
问题内容: 我正在寻找一种通过引用传递方法的方法。我知道Java不会将方法作为参数传递,但是,我想找到一种替代方法。 有人告诉我接口是将方法作为参数传递的替代方法,但我不了解接口如何通过引用充当方法。如果我理解正确,那么接口就是一组未定义的抽象方法。我不想发送每次都需要定义的接口,因为几种不同的方法可以使用相同的参数调用同一方法。 我要完成的工作与此类似: 调用如: 问题答案: 编辑:从Java