您好,匿名用户
随意问技术百科期待您的加入

jQuery XHR 实现 PUT 或者 DELETE ZF2 REST 服务器数据

0 投票

在网上搜了整一下午了,包括看 jQuery 的官方 API 说明文档,还是搞不清楚如何在 HTML 客户端,通过 jQuery 的 XMLHTTPRequest 来实现对 Zend Framework 2 REST 服务器的 PUT 和 DELETE 的请求……
自学能力太差,这么简单的问题越搞越糊涂,求高人指点迷津!!!

client_delete.html
<html>
<head>
    <script type="text/javascript" src="jquery-1.8.2.js"></script>
</head>
	<p>Delete the Book with ISBN:</p>
	<form id="form_delete" action="http://library/books" method="post">
		<p>ISBN: <input id="input_isbn" type="text" name="id" /></p>
		<input type="submit" value="Delete" />
	</form>
	<script type="text/javascript">
	/// <reference path="jquery-1.8.2.js" />
                $.ajax({
			url: 'http://library/books',
			type: 'delete'
		});
        </script>
</html>
ZF2 Controller 部分
class BooksController extends AbstractRestfulController {
	public function delete($id) {
		//$this->getBooksTable()->deleteRowByPrimaryKey($id);
		return "You delete a book!";
	}
}
用户头像 提问 2012年 12月1日 @ Trundle 上等兵 (301 威望)
分享到:

1个回答

0 投票
 
最佳答案

多次测试后决定放弃使用 form 中的 method/_method 提交方式。感谢 @lanisle 最开始的提示:

是否支持PUT和DELETE请求取决于浏览器

新的方法将使用 JS/DOM 和 jQuery 通过 button 的 onclick 事件来实现 DELETE 的提交方式。
下面的代码已经测试可行。

JS 代码
<script type="text/javascript">
/// <reference path="jquery-1.8.2.min.js" />
	function bookDelete() {
                // 取得用户输入 ISBN 值
		var isbnValue = document.getElementById("id").value;
                // AJAX 提交 DELETE 请求
		$.ajax({
			url: 'http://library/books/' + isbnValue,
			type: 'delete',
			success: function(data) {	
                                console.log(data);
			},
			error: function(code, message, details) {
				console.log(message);
				console.log(code);、
                                console.log(details);
			}
		});
	}
</script>
form 内容修改
<!-- 去掉 action 和 method 属性,使用最原始的 form 功能 -->
<form id="form_delete">
	<p>ISBN: <input id="id" type="text" name="id"></p>
        <!-- 放弃 submit 方式,改用 button 并使用 onclick 事件调用 JS 函数 -->
	<input id="input_delete" type="button" value="Delete" onclick="bookDelete()" />
</form>
用户头像 回复 2012年 12月1日 @ Sona 上等兵 (306 威望)
选中 2012年 12月1日 @Trundle
提一个问题:

相关问题

0 投票
1 回复 102 阅读
用户头像 提问 2012年 12月1日 @ Apple 上等兵 (542 威望)
0 投票
1 回复 56 阅读
0 投票
1 回复 26 阅读
0 投票
1 回复 114 阅读
用户头像 提问 2012年 12月1日 @ Malzahar 上等兵 (335 威望)
0 投票
1 回复 55 阅读
用户头像 提问 2013年 9月20日 @ Cassiopeia 上等兵 (317 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...