2016-10-26 5 views
2

私は基本的なjQueryとlodashのテンプレートを使っていくつかのツールを開発しました。file://プロトコルで作業しても反応できますか?

私はAjaxの呼び出しは、ファイルシステム上では動作しません。これらのライブラリを使用して実現し、私はAJAXを使用して、テンプレートをロードしようとすると、このエラーを与える:

のXMLHttpRequestは、ファイルをロードすることはできません:///ユーザ/プロ/ Google%20Drive/dev/tasks/webDevEnvironment/public/html/pipeline-doc/templates/content-one-variable.html。
クロスオリジン・リクエストは、唯一のプロトコルスキームでサポートされています:http、データ、クロム、クロムの拡張、HTTPS、クロム拡張リソース

私は本当にのリアクト哲学が好きで、それは少しのビットやり過ぎかもしれません私が構築しているツール。すべてのコードを再コーディングする前に、Reactアプリケーションがテンプレートのバックグラウンドでajaxを使用していたのか、scriptタグにすべてのものをロードすることが可能かどうか、私は疑問に思っていました。

私はReactで始まったばかりですが、私が理解しているところでは、ファイルで作業するのは問題ではありません://プロトコル...しかし、私は確信しています!

+0

ReactはAJAXを使用しているため、React AJAX呼び出しとWebSocketのほとんどはサーバー上で実行する必要があるとは思いません。 –

答えて

2

最も基本的なケースでは問題はありません。あなたがそれに何をするかに応じて、それはかなり早く問題を起こす可能性があります。

簡単な回避策は、file://プロトコルを使用しないでください。ノード内に軽量のexpressサーバーを簡単に作成すると、http://プロトコルで操作できるようになり、問題全体を回避できます。

var express = require('express'), 
    app = express(); 

app.use(express.static('source-files-directory-goes-here')); 
app.listen(3000, function() { console.log('Listening on port 3000'); }); 

ファイルにserver.jsのようなものを命名投げると、あなたは、単にnode server.jsでそれを実行することができ、それはあなたがhttp://localhost:3000のディレクトリに持っているものは何でもからファイルを検索します。あなたはそれを得るためにnpm install expressを使用する必要があります。

あなたはあなたが使用とにかくリアクトつもりなら、あなたはこのようなものができたいと思うpackage.json、場合:

{ 
    "dependencies": { 
     "express": "latest" 
    }, 
    "scripts": { 
     "start": "node server.js" 
    } 
} 

をそしてnpm startでそれを実行します。

関連する問題