小编Ant*_*ton的帖子

通过Javascript将二进制数据下载为文件

我正在对一个返回二进制数据的API进行ajax调用.我想知道是否可以获取二进制数据并在新窗口中为客户端显示它?这就是我现在正在做的事情.问题是,文档打开了,但它完全是空白的.

$.ajax({
    type: "POST",
    url: apiURL,
    data: xmlRequest,
    complete: function(xhr, status) {
        var bb = new window.WebKitBlobBuilder();

        // Append the binary data to the blob
        bb.append(xhr.responseText);

        var blobURL = window.webkitURL.createObjectURL(bb.getBlob('application/pdf'));
        window.open(blobURL);
    }
});
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript jquery html5 binary-data

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

用嵌套的Promises编写干净的代码

我正在编写一个与Apple通信以验证收据的应用.他们有一个沙盒和生产网址,你可以发布到.

与Apple通信时,如果您收到21007状态,则表示您要发布到生产URL,当您应该发布到沙箱时.

所以我写了一些代码来促进重试逻辑.这是我的代码的简化版本:

var request = require('request')
  , Q = require('q')
  ;

var postToService = function(data, url) {
  var deferred = Q.defer();
  var options = {
    data: data,
    url: url
  };

  request.post(options, function(err, response, body) {
    if (err) { 
      deferred.reject(err);
    } else if (hasErrors(response)) {
      deferred.reject(response);
    } else {
      deferred.resolve(body);
    }
  });

  return deferred.promise;
};

exports.verify = function(data) {
  var deferred = Q.defer();

  postToService(data, "https://production-url.com")
    .then(function(body) {
      deferred.resolve(body);
    })
    .fail(function(err) {
      if (err.code === 21007) {
        postToService(data, "https://sandbox-url.com")
          .then(function(body){
            deferred.resolve(body); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise

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

使用tcsh别名转义双引号

我正在尝试运行以下命令:

replace -x "must " A2input.txt
replace -x " a" -f -s ## A2input.txt
replace -x to -s ## -a A2input.txt
replace -x faith -f "unequivocal" A2input.txt
Run Code Online (Sandbox Code Playgroud)

如果我能把它变成简短而简单的东西,如"a","b","c","d"等,那就太好了......

但是,其中一些参数有引用,这会搞乱别名.有谁知道如何实际逃避双引号?我尝试过'\''和\"之类的东西,但似乎没什么用.

我正在使用tcsh作为我的shell.

quotes alias escaping tcsh

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

带编号的HTML水平有序列表

我正在使用一个有序列表来获取编号,当列表是垂直的时候,它可以很好地工作.但是,一旦我将其设为水平,编号就会消失.

li CSS中的display属性似乎是罪魁祸首.

CSS和HTML:

#QuickSteps {
  width:723px;
  height:75px;
  border:solid 2px #b9c7d9;
  background-color:#e5ecf2;
}

#QuickSteps h2{
  padding-top:2px;
  padding-left:7px;
}

#QuickSteps ol{
  color:#003366;
}

#QuickSteps li {
  display:inline;
}

#QuickSteps li.selected{
  font-weight:bold;
}
Run Code Online (Sandbox Code Playgroud)
<div id="QuickSteps">
  <h2>5 Quick Steps</h2>
  <ol>
    <li class="selected">Account Info ></li>
    <li>About Me ></li>
    <li>Preferences ></li>
    <li>Habits ></li>
    <li>Your Avatar</li>
  </ol>
</div>
Run Code Online (Sandbox Code Playgroud)

html css html-lists horizontallist

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

Java受保护的访问不起作用

在java中,有三种访问级别:

  • 公众 - 对世界开放
  • 私人 - 仅向全班开放
  • 受保护 - 仅对类及其子类(继承)打开.

那么为什么java编译器允许这种情况发生呢?

TestBlah.java:

public class TestBlah {

    public static void main(String[] args) {
        Blah a = new Blah("Blah");
        Bloo b = new Bloo("Bloo");
        System.out.println(a.getMessage());
        System.out.println(b.getMessage()); //Works
        System.out.println(a.testing);
        System.out.println(b.testing); //Works
    }
}
Run Code Online (Sandbox Code Playgroud)

Blah.java:

public class Blah {
    protected String message;

    public Blah(String msg) {
        this.message = msg;
    }

    protected String getMessage(){
        return(this.message);
    }   
}
Run Code Online (Sandbox Code Playgroud)

Bloo.java:

public class Bloo extends Blah {
    public Bloo(String testing) {
        super(testing);
    }
}
Run Code Online (Sandbox Code Playgroud)

java inheritance visibility protected access-levels

3
推荐指数
4
解决办法
5726
查看次数

ASP.NET 2.0:无法将VarChar转换为Int

我有一个ASP.Net表单,它从文本框中获取值:

<asp:TextBox ID="txtID" runat="server" maxlength=9></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

ID为9个数字.

在抓住它之后,我想将它插入数据库(SQL Server 2005),所以我构建了一个参数化字符串,

'The Query
cmd.CommandText = "insert into table (aid) values ('@aid')"
cmd.Connection = conn

'Grab the value
cmd.Parameters.add("@aid", SqlDBType.Int).value = txtID.text

'Execute!
cmd.Connection.Open()
cmd.ExecuteNonQuery
Run Code Online (Sandbox Code Playgroud)

但是,它不让我.它不断给出以下错误消息:

Conversion failed when converting the varchar value '@aid' to data type int.
Run Code Online (Sandbox Code Playgroud)

所以我尝试过各种各样的事情:

cmd.Parameters.add("@aid", SqlDBType.Int).value = 999999999
cmd.Parameters.add("@aid", SqlDBType.Int).value = Convert.ToInt16(txtID.text)
cmd.Parameters.add("@aid", SqlDBType.Int).value = Convert.ToInt32(txtID.text)
cmd.Parameters.add("@aid", SqlDBType.Int).value = Convert.ToInt64(txtID.text)
Run Code Online (Sandbox Code Playgroud)

什么都行不通.在数据库内部,类型为"int".

有任何想法吗?

vb.net sql-server-2005 asp.net-2.0

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