回答編集履歴

2

typo

2017/02/03 13:38

投稿

yambejp
yambejp

スコア116466

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  var xhr = new XMLHttpRequest();
30
30
 
31
- xhr.open('POST', 'y.php');
31
+ xhr.open('POST', './api/print');
32
32
 
33
33
  xhr.responseType = 'arraybuffer';
34
34
 

1

追記

2017/02/03 13:38

投稿

yambejp
yambejp

スコア116466

test CHANGED
@@ -9,3 +9,63 @@
9
9
  ちなみにdataType: 'json'ではかえってくるデータがpdfの
10
10
 
11
11
  バイナリですからつねにパースエラーになるのではないでしょうか?
12
+
13
+
14
+
15
+ #追記
16
+
17
+ turbgraphics200さんのを参考にするとこんな感じでxhrをダイレクトにやったほうが良い感じです
18
+
19
+
20
+
21
+ ```javascript
22
+
23
+ <script>
24
+
25
+ window.onload=function(){
26
+
27
+ var datajson={a:1,b:2,c:"test"};
28
+
29
+ var xhr = new XMLHttpRequest();
30
+
31
+ xhr.open('POST', 'y.php');
32
+
33
+ xhr.responseType = 'arraybuffer';
34
+
35
+ xhr.onload = function() {
36
+
37
+ var blob = new Blob([this.response]);
38
+
39
+ var pdfURL = window.URL.createObjectURL(blob);
40
+
41
+ window.open(pdfURL, '_blank');
42
+
43
+ console.log(this.response.byteLength);
44
+
45
+ };
46
+
47
+ xhr.send(myurlencode(datajson));
48
+
49
+ };
50
+
51
+ function myurlencode(data){
52
+
53
+ var str="";
54
+
55
+ for(var i in data){
56
+
57
+ if(str!=="") str+="&";
58
+
59
+ str+=i+"="+encodeURIComponent(data[i]);
60
+
61
+ }
62
+
63
+ return str;
64
+
65
+ }
66
+
67
+ </script>
68
+
69
+
70
+
71
+ ```