teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

typo

2017/02/03 13:38

投稿

yambejp
yambejp

スコア117867

answer CHANGED
@@ -13,7 +13,7 @@
13
13
  window.onload=function(){
14
14
  var datajson={a:1,b:2,c:"test"};
15
15
  var xhr = new XMLHttpRequest();
16
- xhr.open('POST', 'y.php');
16
+ xhr.open('POST', './api/print');
17
17
  xhr.responseType = 'arraybuffer';
18
18
  xhr.onload = function() {
19
19
  var blob = new Blob([this.response]);

1

追記

2017/02/03 13:38

投稿

yambejp
yambejp

スコア117867

answer CHANGED
@@ -3,4 +3,34 @@
3
3
  つくってsubmitすればいいだけでは?
4
4
 
5
5
  ちなみにdataType: 'json'ではかえってくるデータがpdfの
6
- バイナリですからつねにパースエラーになるのではないでしょうか?
6
+ バイナリですからつねにパースエラーになるのではないでしょうか?
7
+
8
+ #追記
9
+ turbgraphics200さんのを参考にするとこんな感じでxhrをダイレクトにやったほうが良い感じです
10
+
11
+ ```javascript
12
+ <script>
13
+ window.onload=function(){
14
+ var datajson={a:1,b:2,c:"test"};
15
+ var xhr = new XMLHttpRequest();
16
+ xhr.open('POST', 'y.php');
17
+ xhr.responseType = 'arraybuffer';
18
+ xhr.onload = function() {
19
+ var blob = new Blob([this.response]);
20
+ var pdfURL = window.URL.createObjectURL(blob);
21
+ window.open(pdfURL, '_blank');
22
+ console.log(this.response.byteLength);
23
+ };
24
+ xhr.send(myurlencode(datajson));
25
+ };
26
+ function myurlencode(data){
27
+ var str="";
28
+ for(var i in data){
29
+ if(str!=="") str+="&";
30
+ str+=i+"="+encodeURIComponent(data[i]);
31
+ }
32
+ return str;
33
+ }
34
+ </script>
35
+
36
+ ```