小编sic*_*cks的帖子

为什么$ .post()受同源策略的约束,但提交一个form ='POST'的表单好吗?

我正在开发一个基于网络的工具,它简化了我们在办公室所做的工作.我们的合作伙伴提供给我们的工具有一个我们整个楼层使用的通用登录,但它每30分钟就超时一次,这对于必须整天登录都很烦人.

我过去所做的是在我的工具中创建一个隐藏的iframe,通过在页面加载时提交隐藏的表单并在每30分钟继续提交表单来防止超时.然后,他们可以直接从我的工具(通过另一个可见的表单)向合作伙伴工具提交搜索.

我想使用jQuery $.post()来摆脱隐藏的iframe,并使其成为唯一一次提交登录信息的时候就是在进行搜索时.这样,它不会在不使用时不断发送请求,但您仍然可以运行搜索而无需担心登录超时.

似乎ajax相同的起源策略阻止了这一点,所以目前我只是打开一个新的命名窗口,然后一个接一个地在目标窗口中提交两个隐藏的表单.

这样做的问题是,如果登录请求尚未完成,则搜索请求不会通过,并且它们会再次被带到登录页面.如果他们关闭窗口并再次搜索它会起作用,但这也很烦人,只是没有原始情况那么多.

除了你实际上必须看到页面打开(除非它在一个隐藏的iframe中)之外,提交参数$.post()和使用POST方法提交表单之间的区别是什么?它们在萤火虫中看起来相同.有没有什么办法可以在表单提交上设置回调,所以它等待第一个请求在开始第二个之前完成?

forms jquery post same-origin-policy

16
推荐指数
2
解决办法
6453
查看次数

内联SVG与<object>嵌入式

我正在为Eve Online构建一个游戏内浏览器RoR应用程序.我的应用程序的一个要求是显示graphviz生成的SVG图.我遇到了一些在这种环境下满足我的要求的问题.

Eve的IGB没有官方文档,但wiki表示:

新的EVE Online游戏内浏览器(代号为Moondoggie)基于两个元素组合的技术堆栈:

Awesomium:一个中间件层,它将呈现的网页作为3D引擎可解析的数据提供.Awesomium由Khrona Software开发.

Chromium:一个中间件层,提供进程间通信,网页呈现,HTTP通信以及编写Web浏览器所需的所有其他基础知识.它本身就基于Apple的Webkit框架.Chromium是一个主要由谷歌主导的开源项目.

因此,Moondoggie能够通过Acid3测试,因此可以支持完整的HTML 4.01和CSS3规范.

我需要我在SVG中包含的链接才能访问我的应用程序的javascript.嵌入它<embed><object>将SVG放在我的JS文件范围之外.

使用<embed><object>DOES在游戏内浏览器中正确渲染svg.当它像我在下面那样内联时,它会显示一行文本,其中包含来自SVG的文本元素.

更新 这里我在的地方.我很确定这大部分都是多余的,因为我没有注意到只是单独使用render file:我自己的内部视图.我认为mime类型注册更多用于respond_to,但我不确定如何在这种情况下使用它.

主视图片段:

<%= render "map/map" %>
Run Code Online (Sandbox Code Playgroud)

部分视图文件:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:svg="http://www.w3.org/2000/svg">
<head>
    <title>Embedded SVG</title>
</head>
    <body>
        <%= render file: @map.output_file_path %>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

配置/初始化/ mime_types.rb:

Mime::Type.register "image/svg+xml", :svg  
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它在<object>标签内呈现良好但在内联时不呈现.如何<object>在主视图中模拟环境中的环境?或者,如何让<object>标签访问我的javascript函数?

javascript svg ruby-on-rails html4

12
推荐指数
1
解决办法
2520
查看次数

如何将参数绑定到未准备的查询?

我正在制作一个小型Web应用程序,它将定期接收用户输入的数据.在研究如何确保数据输入首先被清理时,为此它似乎是准备好的语句是要走的路.

然而,我发现了这个问题,因为我的应用程序(至少据我所知)每页请求不会执行多个查询,看起来我真正需要的是将值绑定到参数中查询.

我一直在浏览PDO和mysqli上的PHP手册,但我找不到任何值与普通查询绑定的示例.我发现的所有例子都$stmt->prepare在绑定之前的某个地方.

是否该语句是"准备好"由数据库的支持决定的东西,并且准备语句将始终在代码中?或者有没有办法将参数直接绑定到$dbh->query(...)

为了解释为什么我要查看它是否可能不使用prepare,是由于我之前在帖子中链接的SO问题的声明:

何时不使用准备好的陈述?在数据库连接消失之前,您只需要运行一次语句.

何时不使用绑定查询参数(这实际上是大多数人使用预处理语句获取的)?

还有这个

我个人也不会打扰.伪准备语句可能对他们可能提供的安全变量引用有用.

php mysqli pdo

8
推荐指数
1
解决办法
3774
查看次数

获取特定div的子元素中的输入字段的值

我将我的表单拆分为多个部分,并且我正在尝试使用脚本检查每个部分中的空字段数.以前我编写了一个数组,其中包含每个部分的id,并让它循环遍历该数组,但我想找到一个不依赖于预定义数据的更通用的解决方案.

起初我正在尝试.find()

function blankFields(section){
    var totblank = 0;
    var inputs = $('#' + section).find('input');
    $.each(inputs, function(){
        if(this.val() == '') { totblank++; );
    }
Run Code Online (Sandbox Code Playgroud)

什么时候不起作用我试过.serializeArray()

function blankFields(section){
    var totblank = 0;
    var inputs = $('#' + section + ' input').serializeArray();
    $.each(inputs, function(i, field) {
        if (field.value == '') { totblank++; }
    });
Run Code Online (Sandbox Code Playgroud)

然后跟进

    if(totblank > 0){
        $("#"+section+"B").html(totblank+" Empty");
    } else {
        $("#"+section+"B").html("All full!");
    }       
}
Run Code Online (Sandbox Code Playgroud)

section是div的id,div有一个表格输入.

这是我第一次使用这些功能,所以我不确定我哪里出错了.感觉就像我期待输出不是它的东西.

javascript forms jquery input

1
推荐指数
1
解决办法
3461
查看次数

标签 统计

forms ×2

javascript ×2

jquery ×2

html4 ×1

input ×1

mysqli ×1

pdo ×1

php ×1

post ×1

ruby-on-rails ×1

same-origin-policy ×1

svg ×1