相关疑难解决方法(0)

使用jQuery重置多阶段表单

我有一个带有标准复位按钮的表格,因此编码:

<input type="reset" class="button standard" value="Clear" />
Run Code Online (Sandbox Code Playgroud)

麻烦的是,表示表单属于多阶段排序,因此如果用户填写一个阶段然后稍后返回,则单击"清除"按钮时,不会重置各个字段的"记住"值.

我认为附加一个jQuery函数来遍历所有字段并"手动"清除它们就可以了.我已经在表单中使用了jQuery,但我只是起步速度,所以我不知道如何解决这个问题,除了通过ID单独引用每个字段,这看起来效率不高.

TIA提供任何帮助.

forms jquery reset

348
推荐指数
9
解决办法
27万
查看次数

使用Javascript/jQuery下载文件

在这里指定了非常相似的要求.

我需要让用户的浏览器手动开始下载 $('a#someID').click();

但我无法使用该window.href方法,因为它将当前页面内容替换为您尝试下载的文件.

相反,我想在新窗口/选项卡中打开下载.这怎么可能?

javascript jquery download

325
推荐指数
15
解决办法
103万
查看次数

JavaScript/jQuery通过POST使用JSON数据下载文件

我有一个基于jquery的单页webapp.它通过AJAX调用与RESTful Web服务进行通信.

我正在努力完成以下任务:

  1. 将包含JSON数据的POST提交到REST URL.
  2. 如果请求指定了JSON响应,则返回JSON.
  3. 如果请求指定了PDF/XLS/etc响应,则返回可下载的二进制文件.

我现在有1和2工作,客户端jquery应用程序通过基于JSON数据创建DOM元素来显示网页中返回的数据.从Web服务的角度来看,我也有#3工作,这意味着如果给出正确的JSON参数,它将创建并返回二进制文件.但我不确定在客户端javascript代码中处理#3的最佳方法.

是否有可能从这样的ajax调用中获取可下载的文件?如何让浏览器下载并保存文件?

$.ajax({
    type: "POST",
    url: "/services/test",
    contentType: "application/json",
    data: JSON.stringify({category: 42, sort: 3, type: "pdf"}),
    dataType: "json",
    success: function(json, status){
        if (status != "success") {
            log("Error loading data");
            return;
        }
        log("Data loaded!");
    },
    error: function(result, status, err) {
        log("Error loading data");
        return;
    }
});
Run Code Online (Sandbox Code Playgroud)

服务器响应以下标头:

Content-Disposition:attachment; filename=export-1282022272283.pdf
Content-Length:5120
Content-Type:application/pdf
Server:Jetty(6.1.11)
Run Code Online (Sandbox Code Playgroud)

另一个想法是生成PDF并将其存储在服务器上并返回包含该文件的URL的JSON.然后,在ajax成功处理程序中发出另一个调用,执行以下操作:

success: function(json,status) {
    window.location.href = json.url;
}
Run Code Online (Sandbox Code Playgroud)

但这样做意味着我需要对服务器进行多次调用,而我的服务器需要构建可下载的文件,将它们存储在某处,然后定期清理该存储区域.

必须有一种更简单的方法来实现这一目标.想法?


编辑:在查看$ .ajax的文档后,我看到响应dataType只能是其中之一xml, html, script, json, jsonp, text,所以我猜测没有办法使用ajax请求直接下载文件,除非我在使用中嵌入二进制文件@VinayC答案中建议的数据URI方案(这不是我想做的事情).

所以我想我的选择是:

  1. 不使用ajax而是提交表单帖子并将我的JSON数据嵌入到表单值中.可能需要搞乱隐藏的iframe等.

  2. 不使用ajax而是将我的JSON数据转换为查询字符串以构建标准GET请求并将window.location.href设置为此URL.可能需要在我的单击处理程序中使用event.preventDefault()以防止浏览器从应用程序URL更改. …

javascript ajax rest jquery

241
推荐指数
9
解决办法
34万
查看次数

接收一个Zip文件作为对AJAX请求的响应

因此,我在一个需要调用服务器并返回zip文件的网站上工作,事实是我不确定自己是否做对了所有事情。代码看起来像这样:

function download(){
  if($('.download').hasClass('activeBtn')){
    $.ajax({
        type: 'GET',
        url: someUrl,
        contentType: 'application/zip',
        dataType: 'text',
        headers: {
            'Api-Version': '3.4'
        }

    }).then(function (data) {
      console.log(data); //Basically prints the byte array
      //Here I should build the file and download it
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我需要使用响应中的字节数组来填充文件,我该怎么做?

javascript ajax jquery zip http

4
推荐指数
1
解决办法
2万
查看次数

从jquery/javascript下载文件

我有一个java脚本文件,其中变量有一些字符串,如:

var xw = 'Some content';
Run Code Online (Sandbox Code Playgroud)

我想将此字符串下载为文件.如何在JQuery/javascript中执行此操作?我不想使用AJAX在服务器上发送任何请求.有没有办法下载纯粹的JQuery/javascript?

javascript jquery download

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

JAX-RS文件下载,多种内容类型

让我先提供一些背景信息.我正在开发一个与Microsoft SharePoint 2010集成的系统,不是真正的SharePoint作为系统,而是它的文件系统,文档库等的虚拟表示...用户将文件上载到SharePoint,我的系统监视这些文件并对它们编制索引进入搜索引擎(包括文件内容).用户可以通过REST接口与该系统进行交互.

我创建了一个REST接口来为用户提取一个文件,该文件对应于我的搜索引擎中的某个条目.这使用绝对网络路径作为其标识符.一个例子是//corporateserver//library1/filex.docx.由于原始策略相同,但我无法加载此文件客户端.因此,我试图通过服务器传输它.

我使用JAX-RS传输数据取得了一些成功,但是,我遇到了以下困难:

用户希望下载的文件可以是多种内容类型,其中大多数是微软办公室格式.我查看了已注册的MIME类型列表,并且遇到了application/msword或者application/vnd.ms-powerpoint

我的问题:是否有包含Microsoft Office文件的内容类型?如果没有,那么如何继续将正确的内容类型与正在请求的文件进行匹配.如果要为内容类型的word文件服务,会发生什么text/plain

任何有关该主题的帮助将不胜感激.

编辑

我用来传输数据的代码:

package com.fujitsu.consensus.rest;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;

import org.apache.commons.io.IOUtils;
import org.codehaus.jettison.json.JSONException;

@Path("/fetcher")
public class FetcherService {

    @GET
    @Path("/fetch")
    @Produces(MediaType.APPLICATION_OCTET_STREAM)
    public Response fetchFile(@QueryParam("path") String path) 
        throws JSONException, IOException {

        final File file = new File(path);
        System.out.println(path);

        StreamingOutput stream = new StreamingOutput() {
            @Override
            public void write(OutputStream …
Run Code Online (Sandbox Code Playgroud)

java jax-rs same-origin-policy mime-types

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

标签 统计

jquery ×5

javascript ×4

ajax ×2

download ×2

forms ×1

http ×1

java ×1

jax-rs ×1

mime-types ×1

reset ×1

rest ×1

same-origin-policy ×1

zip ×1