当用户单击提交按钮时,我将构建一个ajax调用,所以我已经包含了jquery,并且我编写了以下代码(取自jquery文档):
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function(){
$("Shareitem").click(function(e){
e.preventDefault();
$.ajax({type: "POST",
url: "/imball-reagens/public/shareitem",
data: { id: $("Shareitem").val(), access_token: $("access_token").val() },
success:function(result){
$("sharelink").html(result);
}});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
HTML:
<div id="sharelink"></div>
[...]
<input type="hidden" name="id" value="" id="id"></dd>
<dd id="access_token-element">
<input type="hidden" name="access_token" value="xxxxxxxx" id="access_token"></dd>
<dt id="Shareitem-label"> </dt><dd id="Shareitem-element">
<input type="submit" name="Shareitem" id="Shareitem" value="UpdatedByPreviousAjaxCall"></dd></dl></form>
Run Code Online (Sandbox Code Playgroud)
问题如下,执行提交操作但是ajax调用不执行,因此表单执行请求的提交操作,而不是停留在同一页面并更新所需"div"的内容.
我错过了什么?我哪里错了?提前感谢任何提示.
在新版本的Django的文档中,文本中的内容与显示的代码之间存在歧义.
在描述多数据库配置的部分中,它介绍了路由器配置,并且有一个方法:
allow_relation(obj1, obj2, **hints)如果应该允许obj1和obj2之间的关系,则返回True;如果应该阻止关系,则返回False;如果路由器没有意见,则返回None.这纯粹是一种验证操作,由外键和多对多操作用于确定两个对象之间是否应该允许关系.
在文档的最后有这样的:
Django目前不提供跨越多个数据库的外键或多对多关系的任何支持.如果已使用路由器将模型分区到不同的数据库,则由这些模型定义的任何外键和多对多关系必须位于单个数据库的内部.
这是因为参照完整性.为了维护两个对象之间的关系,Django需要知道相关对象的主键是有效的.如果主键存储在单独的数据库中,则无法轻松评估主键的有效性.
但作为示例给出的路由器代码如下:
def allow_relation(self, obj1, obj2, **hints):
"""
Relations between objects are allowed if both objects are
in the primary/replica pool.
"""
db_list = ('primary', 'replica1', 'replica2')
if obj1._state.db in db_list and obj2._state.db in db_list:
return True
return None
Run Code Online (Sandbox Code Playgroud)
因此,即使对象来自不同的数据库,软件也允许这种关系.
有谁知道这意味着什么?
谢谢.
问题很简单:当我提交表单时我必须下载一个文件,这是一个ajax调用,当提交表单时,我可以使用从表单,服务器端获取的数据构建一个文件,然后将其作为一个链接到提醒.事实是我的老板希望直接下载文件,而不是通过警报中的链接.所以我必须通过龙卷风(web)确保文件在服务器端可用:
self.set_header('Content-Type', 'application/octet-stream')
self.set_header('Content-Disposition', 'attachment; filename=clients_counter.zip')
with open("static/clients_counter.zip", 'r') as f:
while True:
data = f.read()
if not data:
break
self.write(data)
self.finish()
Run Code Online (Sandbox Code Playgroud)
服务器端代码似乎工作正常,但客户端(extjs4.1)真的是一场噩梦.这就是我的ajax调用现在的样子,它不起作用:
Ext.Ajax.request({
method : "GET",
url : 'http://whatever.com/count?client='+client+'&start='+start+'&end='+end,
timeout : 30000,
success :
function (response) {
//Ext.Msg.alert(response.responseText);
desktop.getWindow('count-win').doClose();
return response;
}//handler,
failure :
function(response) {
alert("Wrong request");
}});
Run Code Online (Sandbox Code Playgroud) 我正在尝试连接一个web api服务,box-api,并按照教程我必须输入此命令来获取用户内容中的文件夹:
curl https://api.box.com/2.0/folders/FOLDER_ID/items?limit=2&offset=0 -H "Authorization: Bearer ACCESS_TOKEN"
Run Code Online (Sandbox Code Playgroud)
我试图从命令行连接到测试命令,但它一直在抱怨-H或者--header命令说它不存在:
-bash: -H: command not found
-bash: --header: command not found
Run Code Online (Sandbox Code Playgroud)
但是当我键入curl --help时,命令在手册中:
-H, --header LINE Custom header to pass to server (H)
Run Code Online (Sandbox Code Playgroud)
我很困惑,我该怎么做才能连接到这个网站并获得JSON内容?谢谢
我是zend框架的新手,我在获取GET参数时遇到问题(zend framework 1.12.3).我虽然不得不打字
localhost/controller/parameter/value
Run Code Online (Sandbox Code Playgroud)
要生成GET参数,然后在控制器中:
$id = $this->getRequest()->getParam( 'id');
$this->view->id= $id;
Run Code Online (Sandbox Code Playgroud)
但我收到此服务器错误:
GET /localhost/controller/parameter/1 HTTP/1.1" 404 7173
Run Code Online (Sandbox Code Playgroud)
我错过了什么?