gpt4 book ai didi

java - 是否真的可以使用原型(prototype)调用 HTTP PUT

转载 作者:行者123 更新时间:2023-12-02 08:26:14 25 4
gpt4 key购买 nike

我正在 NetBean6.9 上运行 JEE6glassfish v3,并致力于 RESTful Web 服务

我有jsp文件,其中包含下面的javascript函数。

它基本上从 HTML 输入字段 读取信息并转换为 JSON 格式

然后通过onclick Ajax 调用尝试使用HTTP PUT 方法发送JSON 字符串。(即我正在尝试使用 REST 更新数据库记录)

对于我使用的js框架是Prototype1.7

当我测试下面的函数时,它总是返回 404,从而显示“出现问题”警报。

根据我的搜索原型(prototype),1.5 以上版本支持 HTTP PUT/DELETE 方法,为此,将 _method 添加到请求 URL,就像我正在做的那样:

var url = "/resources/inventory/" + invId + "?_method=PUT";

这将创建例如:

http://localhost:8080/NoJSF/resources/inventory/123?_method=PUT

我查看了 Firebug 和控制台,显示该请求实际上是POST。不确定,但我相信这是因为 Prototype 使用 POST 隧道来实现 PUT 方法?

此外,即使 Ajax 正在被调用,我的带有 JAX-RS 注释的 @POST 的 Java 文件甚至没有被调用(@GET 版本正在处理单独的数据,所以这是正确的文件),因为它的方法的第一行该吐出消息没有显示,所以我怀疑我的 Ajax 语句有一些错误,或者有一些超出我的想法的东西..有人能给我提示吗?

function protoAjaxPut() {
//get all fields value and store into json
var invId = document.getElementById("invIdField").value;
var invName = document.getElementById("invNameField").value;
//put info into JSON format

var jsonInput = JSON.stringify(new Array(invName));

var url = "/resources/inventory/" + invId + "?_method=PUT";

new Ajax.Request(url, {
method:'put',
postBody: jsonInput,
ContentType: 'application/json',
onSuccess: function(transport) {
var responseData = transport.responseText;
document.getElementById('putResponseText').innerHTML = responseData;
},
onFailure: function() { alert('something went wrong!')}
})
}//end protoAjaxPut

最佳答案

关于java - 是否真的可以使用原型(prototype)调用 HTTP PUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com