このコードを使用して、エクスプレスサーバーとクライアントWebサイト(クロスドメインでも)の間で文字列を交換できます(完全に機能します):
app.js:
var express = require("express");
var app = express();
var fs=require('fs');
var stringforfirefox = 'hi buddy!'
app.get('/getJSONPResponse', function(req, res) {
res.writeHead(200, {'Content-Type': 'application/javascript'});
res.end("__parseJSONPResponse(" + JSON.stringify( stringforfirefox) + ");");
});
app.listen(8001)
index.html:
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
<script>
function __parseJSONPResponse(data) { alert(data); }
document.onkeypress = function keypressed(e){
if (e.keyCode == 112) {
var script = document.createElement('script');
script.src = 'http://localhost:8001/getJSONPResponse';
document.body.appendChild(script); // triggers a GET request ??????
}
}
</script>
<title></title>
</head>
<body>
</body>
</html>
document.createElement() と document.body.appendChild() を使用して Get リクエストをトリガーします。私たちの質問: これで多くのリクエストを行う予定なので、すべてのリクエストで新しいエレメントを作成しても問題ありませんか? それが問題を引き起こす可能性があります。それとも、応答を受け取った後にそのような要素をクリアする必要がありますか?