2016-10-26 5 views
2

기본 jQuery를 사용하고 lodash의 템플릿을 사용하여 여러 도구를 개발했습니다.file : // 프로토콜을 통해 작업에 대응할 수 있습니까?

나는 Ajax 호출은 파일 시스템 이상 작동하지 않는 라이브러리를 사용하여 실현 내가 아약스를 사용하여 템플릿을로드하려고 할 때이 오류를 제공합니다

XMLHttpRequest의 파일을로드 할 수 없습니다 : /// 사용자/프로/Google % 20Drive/dev/tasks/webDevEnvironment/public/html/pipeline-doc/templates/content-one-variable.html. 그것은 작은에 대한 약간의 잔인한 수 있습니다 정말의 반작용 철학처럼 HTTP, 데이터, 크롬, 크롬 확장, HTTPS, 크롬 확장-자원

:
크로스 원산지 요청은 프로토콜 체계에 대해 지원됩니다 내가 만드는 도구. React 어플리케이션이 Ajax를 백그라운드에서 템플릿으로 사용했는지 또는 스크립트 태그에 모든 것을로드 할 수 있는지 궁금해했다.

필자는 React로 시작하고 있습니다. 파일에서 작업하는 데 문제가되지 않는다는 것을 이해합니다. // 프로토콜 ...하지만 확실하게하는 것이 좋습니다!

+0

React가 AJAX를 사용하고 React AJAX 호출 및 웹 소켓의 대부분이 서버에서 실행되어야하기 때문에 가능하지 않다고 생각합니다. –

답변

2

가장 기본적인 경우에는 문제가 없습니다. 당신이 그것으로 무엇을 하느냐에 따라, 그것은 꽤 빨리 문제를 일으킬 수 있습니다.

쉬운 해결 방법은 file:// 프로토콜을 사용하지 않는 것입니다. 노드에 경량의 express 서버를 쉽게 만들면 http:// 프로토콜을 통해 작동하고 전체 문제를 회피 할 수 있습니다. 파일에 server.js 같은 이름 당신은 그럼 그냥 node server.js 그것을 실행할 수 있으며 당신이 http://localhost:3000에서 디렉토리에있는 어떤에서 파일을 검색 할 수 있습니다

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'); }); 

던져. 그것을 얻으려면 npm install express을 사용해야합니다. 당신은 당신이 거 사용 어쨌든 반작용이 있다면 당신이 원하는거야 package.json을 원하는 경우

, 당신은 다음과 같이 할 수 있습니다 :

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

을 그리고 npm start으로 실행합니다.

관련 문제